From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH] drm/i915: Prepare for atomic plane helpers (v7) Date: Thu, 11 Dec 2014 15:54:52 -0800 Message-ID: <1418342092-1985-1-git-send-email-matthew.d.roper@intel.com> References: <1418154823-10819-6-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 5EDE96E016 for ; Thu, 11 Dec 2014 15:55:00 -0800 (PST) In-Reply-To: <1418154823-10819-6-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QWRkIHRoZSBuZXcgZHJpdmVyIGVudHJ5cG9pbnRzIHRoYXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhl IGF0b21pYyBwbGFuZQpoZWxwZXJzLgoKVGhpcyBwYXRjaCBkb2VzIG5vdCBhY3R1YWxseSBzd2l0 Y2ggb3ZlciB0byB0aGUgbmV3IHBsYW5lIGhlbHBlcnMgeWV0LApzbyB0aGVyZSBzaG91bGQgYmUg bm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4gIEFsc28gbm90ZSB0aGF0IGFsdGhvdWdoCnBsYW5l IHByb2dyYW1taW5nIHdhcyBhbHJlYWR5IHNwbGl0IGludG8gY2hlY2svcHJlcGFyZS9jb21taXQg c3RlcHMsCnNvbWUgb2YgdGhlIHNlbWFudGljcyBvZiB0aG9zZSBpbmRpdmlkdWFsIGZ1bmN0aW9u cyB3aWxsIG5lZWQgdG8gY2hhbmdlCnNsaWdodGx5IHdoZW4gd2UgZG8gbWFrZSB0aGUganVtcCBz byB0aGF0IHRoZXkgbWF0Y2ggdGhlIGJlaGF2aW9yIHRoZQpwbGFuZSBoZWxwZXJzIGV4cGVjdC4K CnYyOgogLSBSZW5hbWVkIGZpbGUgZnJvbSBpbnRlbF9hdG9taWMuYyB0byBpbnRlbF9hdG9taWNf cGxhbmUuYyAoRGFuaWVsKQogLSBGaXggYSBjb3B5L3Bhc3RlIGNvbW1lbnQgbWlzdGFrZSAoQm9i KQoKdjM6CiAtIFVzZSBwcmVwYXJlL2NsZWFudXAgZnVuY3Rpb25zIHRoYXQgd2UndmUgYWxyZWFk eSBmYWN0b3JlZCBvdXQKIC0gVXNlIG5ld2x5IHJlZmFjdG9yZWQgcHJlX2NvbW1pdC9jb21taXQv cG9zdF9jb21taXQgdG8gYXZvaWQgc2xlZXBpbmcKICAgZHVyaW5nIHZibGFuayBldmFzaW9uCgp2 NDoKIC0gUmViYXNlIHRvIGxhdGVzdCBkaS1uaWdodGx5IHJlcXVpcmVzIGFkZGluZyBhbiAnb2xk X3N0YXRlJyBwYXJhbWV0ZXIKICAgdG8gYXRvbWljX3VwZGF0ZTsKCnY1OgogLSBNdXN0IGhhdmUg Ym90Y2hlZCBhIHJlYmFzZSBzb21ld2hlcmUgYW5kIGxvc3Qgc29tZSB3b3JrLiAgUmVzdG9yZQog ICBzdGF0ZSAnZGlydHknIGZsYWcgdG8gbGV0IGJlZ2luL2VuZCBjb2RlIGtub3cgd2hpY2ggcGxh bmVzIHRvCiAgIHJ1biB0aGUgcHJlX2NvbW1pdC9wb3N0X2NvbW1pdCBob29rcyBmb3IuICBUaGlz IHdvdWxkIGhhdmUgYWN0dWFsbHkKICAgc2hvd24gdXAgYXMgYnJva2VuIGluIHRoZSBuZXh0IGNv bW1pdCByYXRoZXIgdGhhbiB0aGlzIG9uZS4KCnY2OgogLSBTcXVhc2gga2VybmVsZG9jIHBhdGNo IGludG8gdGhpcyBvbmUuCiAtIFByZXZpb3VzIHBhdGNoZXMgaGF2ZSBub3cgYWxyZWFkeSB0YWtl biBjYXJlIG9mIG1vc3Qgb2YgdGhlCiAgIGluZnJhc3RydWN0dXJlIHRoYXQgdXNlZCB0byBiZSBp biB0aGlzIHBhdGNoLiAgQWxsIHdlJ3JlIGFkZGluZyBoZXJlCiAgIG5vdyBpcyBzb21lIHRoaW4g d3JhcHBlcnMuCgp2NzoKIC0gQ2hlY2sgcmV0dXJuIG9mIGludGVsX3BsYW5lX2R1cGxpY2F0ZV9z dGF0ZSgpIGZvciBhbGxvY2F0aW9uCiAgIGZhaWx1cmVzLgoKU2lnbmVkLW9mZi1ieTogTWF0dCBS b3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL0RvY0Jv b2svZHJtLnRtcGwgICAgICAgICAgICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZSAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWNfcGxhbmUuYyB8IDE1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgIHwgIDMyICsrKysrKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgIHwgICA4ICsrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgICAgICB8ICAxMiArKysKIDYgZmlsZXMgY2hhbmdlZCwg MjA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwoKZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1w bAppbmRleCAyNWMyM2NhLi43YzUyMDdiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0RvY0Jv b2svZHJtLnRtcGwKKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCkBAIC0zOTMy LDYgKzM5MzIsMTEgQEAgaW50IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4KICAgICAgICAgPC9wYXJh PgogICAgICAgPC9zZWN0Mj4KICAgICAgIDxzZWN0Mj4KKyAgICAgICAgPHRpdGxlPkF0b21pYyBQ bGFuZSBIZWxwZXJzPC90aXRsZT4KKyFQZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj X3BsYW5lLmMgYXRvbWljIHBsYW5lIGhlbHBlcnMKKyFJZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljX3BsYW5lLmMKKyAgICAgIDwvc2VjdDI+CisgICAgICA8c2VjdDI+CiAgICAgICAg IDx0aXRsZT5PdXRwdXQgUHJvYmluZzwvdGl0bGU+CiAgICAgICAgIDxwYXJhPgogCSAgVGhpcyBz ZWN0aW9uIGNvdmVycyBvdXRwdXQgcHJvYmluZyBhbmQgcmVsYXRlZCBpbmZyYXN0cnVjdHVyZSBs aWtlIHRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCAzY2Y3MGE2Li40YTZjZWQ3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQpAQCAtNjUsNiArNjUsNyBAQCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwK IAkgIGR2b19uczI1MDEubyBcCiAJICBkdm9fc2lsMTY0Lm8gXAogCSAgZHZvX3RmcDQxMC5vIFwK KwkgIGludGVsX2F0b21pY19wbGFuZS5vIFwKIAkgIGludGVsX2NydC5vIFwKIAkgIGludGVsX2Rk aS5vIFwKIAkgIGludGVsX2RwLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNf cGxhbmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODZmZWM4Ci0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMK QEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3Jh dGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNv ZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBi ZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQor ICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xV RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ LAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO VC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLwor CisvKioKKyAqIERPQzogYXRvbWljIHBsYW5lIGhlbHBlciBzdXBwb3J0CisgKgorICogVGhlIGZ1 bmN0aW9ucyBoZXJlIGFyZSB1c2VkIGJ5IHRoZSBhdG9taWMgcGxhbmUgaGVscGVyIGZ1bmN0aW9u cyB0bworICogaW1wbGVtZW50IGxlZ2FjeSBwbGFuZSB1cGRhdGVzIChpLmUuLCBkcm1fcGxhbmUt PnVwZGF0ZV9wbGFuZSgpIGFuZAorICogZHJtX3BsYW5lLT5kaXNhYmxlX3BsYW5lKCkpLiAgVGhp cyBhbGxvd3MgcGxhbmUgdXBkYXRlcyB0byB1c2UgdGhlCisgKiBhdG9taWMgc3RhdGUgaW5mcmFz dHJ1Y3R1cmUgYW5kIHBlcmZvcm0gcGxhbmUgdXBkYXRlcyBhcyBzZXBhcmF0ZQorICogcHJlcGFy ZS9jaGVjay9jb21taXQvY2xlYW51cCBzdGVwcy4KKyAqLworCisjaW5jbHVkZSA8ZHJtL2RybVAu aD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJt X3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgImludGVsX2Rydi5oIgorCisvKioKKyAqIGludGVs X3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSAtIGR1cGxpY2F0ZSBwbGFuZSBzdGF0ZQorICogQHBsYW5l OiBkcm0gcGxhbmUKKyAqCisgKiBBbGxvY2F0ZXMgYW5kIHJldHVybnMgYSBjb3B5IG9mIHRoZSBw bGFuZSBzdGF0ZSAoYm90aCBjb21tb24gYW5kCisgKiBJbnRlbC1zcGVjaWZpYykgZm9yIHRoZSBz cGVjaWZpZWQgcGxhbmUuCisgKgorICogUmV0dXJuczogVGhlIG5ld2x5IGFsbG9jYXRlZCBwbGFu ZSBzdGF0ZSwgb3IgTlVMTCBvciBmYWlsdXJlLgorICovCitzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICoKK2ludGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkK K3sKKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlOworCisJaWYgKHBsYW5lLT5zdGF0 ZSkKKwkJc3RhdGUgPSBrbWVtZHVwKHBsYW5lLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSksIEdGUF9L RVJORUwpOworCWVsc2UKKwkJc3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VS TkVMKTsKKworCWlmICghc3RhdGUpCisJCXJldHVybiBOVUxMOworCisJaWYgKHN0YXRlLT5iYXNl LmZiKQorCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKHN0YXRlLT5iYXNlLmZiKTsKKworCXJl dHVybiAmc3RhdGUtPmJhc2U7Cit9CisKKy8qKgorICogaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0 ZSAtIGRlc3Ryb3kgcGxhbmUgc3RhdGUKKyAqIEBwbGFuZTogZHJtIHBsYW5lCisgKgorICogRGVz dHJveXMgdGhlIHBsYW5lIHN0YXRlIChib3RoIGNvbW1vbiBhbmQgSW50ZWwtc3BlY2lmaWMpIGZv ciB0aGUKKyAqIHNwZWNpZmllZCBwbGFuZS4KKyAqLwordm9pZAoraW50ZWxfcGxhbmVfZGVzdHJv eV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCSAgc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqc3RhdGUpCit7CisJZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZShw bGFuZSwgc3RhdGUpOworfQorCitzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq c3RhdGUpCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmNydGM7CisJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGM7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFu ZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmlu dGVsX3N0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoc3RhdGUpOworCisJY3J0YyA9IGNydGMg PyBjcnRjIDogcGxhbmUtPmNydGM7CisJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 CisKKwkvKgorCSAqIFRoZSBvcmlnaW5hbCBzcmMvZGVzdCBjb29yZGluYXRlcyBhcmUgc3RvcmVk IGluIHN0YXRlLT5iYXNlLCBidXQKKwkgKiB3ZSB3YW50IHRvIGtlZXAgYW5vdGhlciBjb3B5IGlu dGVybmFsIHRvIG91ciBkcml2ZXIgdGhhdCB3ZSBjYW4KKwkgKiBjbGlwL21vZGlmeSBvdXJzZWx2 ZXMuCisJICovCisJaW50ZWxfc3RhdGUtPnNyYy54MSA9IHN0YXRlLT5zcmNfeDsKKwlpbnRlbF9z dGF0ZS0+c3JjLnkxID0gc3RhdGUtPnNyY195OworCWludGVsX3N0YXRlLT5zcmMueDIgPSBzdGF0 ZS0+c3JjX3ggKyBzdGF0ZS0+c3JjX3c7CisJaW50ZWxfc3RhdGUtPnNyYy55MiA9IHN0YXRlLT5z cmNfeSArIHN0YXRlLT5zcmNfaDsKKwlpbnRlbF9zdGF0ZS0+ZHN0LngxID0gc3RhdGUtPmNydGNf eDsKKwlpbnRlbF9zdGF0ZS0+ZHN0LnkxID0gc3RhdGUtPmNydGNfeTsKKwlpbnRlbF9zdGF0ZS0+ ZHN0LngyID0gc3RhdGUtPmNydGNfeCArIHN0YXRlLT5jcnRjX3c7CisJaW50ZWxfc3RhdGUtPmRz dC55MiA9IHN0YXRlLT5jcnRjX3kgKyBzdGF0ZS0+Y3J0Y19oOworCisJLyogQ2xpcCBhbGwgcGxh bmVzIHRvIENSVEMgc2l6ZSwgb3IgMHgwIGlmIENSVEMgaXMgZGlzYWJsZWQgKi8KKwlpbnRlbF9z dGF0ZS0+Y2xpcC54MSA9IDA7CisJaW50ZWxfc3RhdGUtPmNsaXAueTEgPSAwOworCWludGVsX3N0 YXRlLT5jbGlwLngyID0KKwkJaW50ZWxfY3J0Yy0+YWN0aXZlID8gaW50ZWxfY3J0Yy0+Y29uZmln LnBpcGVfc3JjX3cgOiAwOworCWludGVsX3N0YXRlLT5jbGlwLnkyID0KKwkJaW50ZWxfY3J0Yy0+ YWN0aXZlID8gaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX2ggOiAwOworCisJLyoKKwkgKiBE aXNhYmxpbmcgYSBwbGFuZSBpcyBhbHdheXMgb2theTsgd2UganVzdCBuZWVkIHRvIHVwZGF0ZQor CSAqIGZiIHRyYWNraW5nIGluIGEgc3BlY2lhbCB3YXkgc2luY2UgY2xlYW51cF9mYigpIHdvbid0 CisJICogZ2V0IGNhbGxlZCBieSB0aGUgcGxhbmUgaGVscGVycy4KKwkgKi8KKwlpZiAoc3RhdGUt PmZiID09IE5VTEwgJiYgcGxhbmUtPnN0YXRlLT5mYiAhPSBOVUxMKSB7CisJCS8qCisJCSAqICdw cmVwYXJlJyBpcyBuZXZlciBjYWxsZWQgd2hlbiBwbGFuZSBpcyBiZWluZyBkaXNhYmxlZCwgc28K KwkJICogd2UgbmVlZCB0byBoYW5kbGUgZnJvbnRidWZmZXIgdHJhY2tpbmcgYXMgYSBzcGVjaWFs IGNhc2UKKwkJICovCisJCWludGVsX2NydGMtPmF0b21pYy50cmFja19mYnMgfD0gKDEgPDwgZHJt X3BsYW5lX2luZGV4KHBsYW5lKSk7CisJfQorCisJcmV0dXJuIGludGVsX3BsYW5lLT5jaGVja19w bGFuZShwbGFuZSwgaW50ZWxfc3RhdGUpOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9h dG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgICAgIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVs X3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqaW50ZWxfc3RhdGUgPQorCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwor CisJLyogRG9uJ3QgZGlzYWJsZSBhbiBhbHJlYWR5IGRpc2FibGVkIHBsYW5lICovCisJaWYgKCFw bGFuZS0+c3RhdGUtPmZiICYmICFvbGRfc3RhdGUtPmZiKQorCQlyZXR1cm47CisKKwlpbnRlbF9w bGFuZS0+Y29tbWl0X3BsYW5lKHBsYW5lLCBpbnRlbF9zdGF0ZSk7Cit9CisKK2NvbnN0IHN0cnVj dCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIGludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyA9IHsKKwku cHJlcGFyZV9mYiA9IGludGVsX3ByZXBhcmVfcGxhbmVfZmIsCisJLmNsZWFudXBfZmIgPSBpbnRl bF9jbGVhbnVwX3BsYW5lX2ZiLAorCS5hdG9taWNfY2hlY2sgPSBpbnRlbF9wbGFuZV9hdG9taWNf Y2hlY2ssCisJLmF0b21pY191cGRhdGUgPSBpbnRlbF9wbGFuZV9hdG9taWNfdXBkYXRlLAorfTsK KwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDAzMGNmOTMuLmY4MzkxMTUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTk4LDYgKzk4LDggQEAgc3Rh dGljIHZvaWQgdmx2X3ByZXBhcmVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX2NvbmZpZyAqcGlwZV9jb25maWcpOwogc3RhdGljIHZv aWQgY2h2X3ByZXBhcmVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX2NvbmZpZyAqcGlwZV9jb25maWcpOworc3RhdGljIHZvaWQgaW50 ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK3N0YXRpYyB2b2lk IGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCiBzdGF0 aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2ZpbmRfZW5jb2RlcihzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IsIGludCBwaXBlKQogewpAQCAtOTc5NCw2ICs5Nzk2LDggQEAg b3V0X2hhbmc6CiBzdGF0aWMgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyBpbnRlbF9oZWxw ZXJfZnVuY3MgPSB7CiAJLm1vZGVfc2V0X2Jhc2VfYXRvbWljID0gaW50ZWxfcGlwZV9zZXRfYmFz ZV9hdG9taWMsCiAJLmxvYWRfbHV0ID0gaW50ZWxfY3J0Y19sb2FkX2x1dCwKKwkuYXRvbWljX2Jl Z2luID0gaW50ZWxfYmVnaW5fY3J0Y19jb21taXQsCisJLmF0b21pY19mbHVzaCA9IGludGVsX2Zp bmlzaF9jcnRjX2NvbW1pdCwKIH07CiAKIC8qKgpAQCAtMTIwMTEsNiArMTIwMTUsNyBAQCBpbnRl bF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogdm9pZCBpbnRlbF9wbGFu ZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogewogCXN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50ZWxfcGxhbmVfZGVz dHJveV9zdGF0ZShwbGFuZSwgcGxhbmUtPnN0YXRlKTsKIAlkcm1fcGxhbmVfY2xlYW51cChwbGFu ZSk7CiAJa2ZyZWUoaW50ZWxfcGxhbmUpOwogfQpAQCAtMTIwMTksMTMgKzEyMDI0LDE3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3ByaW1hcnlfcGxhbmVfZnVu Y3MgPSB7CiAJLnVwZGF0ZV9wbGFuZSA9IGludGVsX3VwZGF0ZV9wbGFuZSwKIAkuZGlzYWJsZV9w bGFuZSA9IGludGVsX2Rpc2FibGVfcGxhbmUsCiAJLmRlc3Ryb3kgPSBpbnRlbF9wbGFuZV9kZXN0 cm95LAotCS5zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9zZXRfcHJvcGVydHkKKwkuc2V0X3By b3BlcnR5ID0gaW50ZWxfcGxhbmVfc2V0X3Byb3BlcnR5LAorCS5hdG9taWNfZHVwbGljYXRlX3N0 YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0 ZSA9IGludGVsX3BsYW5lX2Rlc3Ryb3lfc3RhdGUsCisKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJt X3BsYW5lICppbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJCQkJICAgIGludCBwaXBlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcHJpbWFyeTsK KwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlOwogCWNvbnN0IHVpbnQzMl90ICppbnRl bF9wcmltYXJ5X2Zvcm1hdHM7CiAJaW50IG51bV9mb3JtYXRzOwogCkBAIC0xMjAzMyw2ICsxMjA0 MiwxMyBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocHJpbWFyeSA9PSBOVUxMKQogCQlyZXR1 cm4gTlVMTDsKIAorCXByaW1hcnktPmJhc2Uuc3RhdGUgPSBpbnRlbF9wbGFuZV9kdXBsaWNhdGVf c3RhdGUoJnByaW1hcnktPmJhc2UpOworCWlmIChwcmltYXJ5LT5iYXNlLnN0YXRlID09IE5VTEwp IHsKKwkJa2ZyZWUocHJpbWFyeSk7CisJCXJldHVybiBOVUxMOworCX0KKworCXN0YXRlID0gdG9f aW50ZWxfcGxhbmVfc3RhdGUocHJpbWFyeS0+YmFzZS5zdGF0ZSk7CiAJcHJpbWFyeS0+Y2FuX3Nj YWxlID0gZmFsc2U7CiAJcHJpbWFyeS0+bWF4X2Rvd25zY2FsZSA9IDE7CiAJcHJpbWFyeS0+cGlw ZSA9IHBpcGU7CkBAIC0xMjA2OCw2ICsxMjA4NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5l ICppbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJ CXByaW1hcnktPnJvdGF0aW9uKTsKIAl9CiAKKwlkcm1fcGxhbmVfaGVscGVyX2FkZCgmcHJpbWFy eS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7CisKIAlyZXR1cm4gJnByaW1hcnkt PmJhc2U7CiB9CiAKQEAgLTEyMTg4LDE3ICsxMjIwNiwyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7CiAJLmRpc2FibGVf cGxhbmUgPSBpbnRlbF9kaXNhYmxlX3BsYW5lLAogCS5kZXN0cm95ID0gaW50ZWxfcGxhbmVfZGVz dHJveSwKIAkuc2V0X3Byb3BlcnR5ID0gaW50ZWxfcGxhbmVfc2V0X3Byb3BlcnR5LAorCS5hdG9t aWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9t aWNfZGVzdHJveV9zdGF0ZSA9IGludGVsX3BsYW5lX2Rlc3Ryb3lfc3RhdGUsCiB9OwogCiBzdGF0 aWMgc3RydWN0IGRybV9wbGFuZSAqaW50ZWxfY3Vyc29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJCQkJICAgaW50IHBpcGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5l ICpjdXJzb3I7CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZTsKIAogCWN1cnNvciA9 IGt6YWxsb2Moc2l6ZW9mKCpjdXJzb3IpLCBHRlBfS0VSTkVMKTsKIAlpZiAoY3Vyc29yID09IE5V TEwpCiAJCXJldHVybiBOVUxMOwogCisJY3Vyc29yLT5iYXNlLnN0YXRlID0gaW50ZWxfcGxhbmVf ZHVwbGljYXRlX3N0YXRlKCZjdXJzb3ItPmJhc2UpOworCWlmIChjdXJzb3ItPmJhc2Uuc3RhdGUg PT0gTlVMTCkgeworCQlrZnJlZShjdXJzb3IpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlzdGF0 ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGN1cnNvci0+YmFzZS5zdGF0ZSk7CiAJY3Vyc29yLT5j YW5fc2NhbGUgPSBmYWxzZTsKIAljdXJzb3ItPm1heF9kb3duc2NhbGUgPSAxOwogCWN1cnNvci0+ cGlwZSA9IHBpcGU7CkBAIC0xMjIyNSw2ICsxMjI1Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3Bs YW5lICppbnRlbF9jdXJzb3JfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJY3Vyc29yLT5yb3RhdGlvbik7CiAJfQogCisJZHJtX3BsYW5lX2hlbHBlcl9hZGQoJmN1cnNv ci0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7CisKIAlyZXR1cm4gJmN1cnNvci0+ YmFzZTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAyNTIzMzE1Li43YmQ4YWQ5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNDM3LDYgKzQzNyw3IEBAIHN0cnVjdCBp bnRlbF9jcnRjX2F0b21pY19jb21taXQgewogCWJvb2wgZGlzYWJsZV9mYmM7CiAJYm9vbCBwcmVf ZGlzYWJsZV9wcmltYXJ5OwogCWJvb2wgdXBkYXRlX3dtOworCXVuc2lnbmVkIHRyYWNrX2ZiczsK IAogCS8qIFNsZWVwYWJsZSBvcGVyYXRpb25zIHRvIHBlcmZvcm0gYWZ0ZXIgY29tbWl0ICovCiAJ dW5zaWduZWQgZmJfYml0czsKQEAgLTU3NSw2ICs1NzYsNyBAQCBzdHJ1Y3QgY3hzcl9sYXRlbmN5 IHsKICNkZWZpbmUgdG9faW50ZWxfZW5jb2Rlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlu dGVsX2VuY29kZXIsIGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX2ZyYW1lYnVmZmVyKHgpIGNvbnRh aW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIsIGJhc2UpCiAjZGVmaW5lIHRvX2lu dGVsX3BsYW5lKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmUsIGJhc2UpCisj ZGVmaW5lIHRvX2ludGVsX3BsYW5lX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUsIGJhc2UpCiAjZGVmaW5lIGludGVsX2ZiX29iaih4KSAoeCA/IHRvX2lu dGVsX2ZyYW1lYnVmZmVyKHgpLT5vYmogOiBOVUxMKQogCiBzdHJ1Y3QgaW50ZWxfaGRtaSB7CkBA IC0xMjUzLDQgKzEyNTUsMTAgQEAgdm9pZCBpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KHN0cnVj dCBkcm1fY3J0YyAqY3J0Yyk7CiAvKiBpbnRlbF90di5jICovCiB2b2lkIGludGVsX3R2X2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKKy8qIGludGVsX2F0b21pYy5jICovCitzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICppbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUpOwordm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAorCQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKTsK K2V4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBpbnRlbF9wbGFuZV9o ZWxwZXJfZnVuY3M7CisKICNlbmRpZiAvKiBfX0lOVEVMX0RSVl9IX18gKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggMTRjMGI4OC4uZGY0MWM4OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2Ny dGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcmVj dC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSAiaW50ZWxf ZHJ2LmgiCiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIK QEAgLTEzOTAsNiArMTM5MSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNz IGludGVsX3BsYW5lX2Z1bmNzID0gewogCS5kaXNhYmxlX3BsYW5lID0gaW50ZWxfZGlzYWJsZV9w bGFuZSwKIAkuZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCiAJLnNldF9wcm9wZXJ0eSA9 IGludGVsX3BsYW5lX3NldF9wcm9wZXJ0eSwKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGlu dGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBpbnRl bF9wbGFuZV9kZXN0cm95X3N0YXRlLAogfTsKIAogc3RhdGljIHVpbnQzMl90IGlsa19wbGFuZV9m b3JtYXRzW10gPSB7CkBAIC0xNDUxLDYgKzE0NTQsMTMgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQogCWlmICghaW50 ZWxfcGxhbmUpCiAJCXJldHVybiAtRU5PTUVNOwogCisJaW50ZWxfcGxhbmUtPmJhc2Uuc3RhdGUg PQorCQlpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoJmludGVsX3BsYW5lLT5iYXNlKTsKKwlp ZiAoaW50ZWxfcGxhbmUtPmJhc2Uuc3RhdGUgPT0gTlVMTCkgeworCQlrZnJlZShpbnRlbF9wbGFu ZSk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwogCXN3aXRjaCAoSU5URUxfSU5GTyhkZXYpLT5n ZW4pIHsKIAljYXNlIDU6CiAJY2FzZSA2OgpAQCAtMTU0NCw2ICsxNTU0LDggQEAgaW50ZWxfcGxh bmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5l KQogCQkJCQkgICBkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5LAogCQkJCQkgICBp bnRlbF9wbGFuZS0+cm90YXRpb24pOwogCisJZHJtX3BsYW5lX2hlbHBlcl9hZGQoJmludGVsX3Bs YW5lLT5iYXNlLCAmaW50ZWxfcGxhbmVfaGVscGVyX2Z1bmNzKTsKKwogIG91dDoKIAlyZXR1cm4g cmV0OwogfQotLSAKMS44LjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK