From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kannan, Vandana" Subject: Re: [PATCH v2 2/2] drm/i915: Render decompression support for Gen9 and above Date: Mon, 9 May 2016 06:02:46 +0000 Message-ID: References: <1461941820-10951-1-git-send-email-vandana.kannan@intel.com> <20160429144529.GT4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 285DD6E2E3 for ; Mon, 9 May 2016 06:02:51 +0000 (UTC) In-Reply-To: <20160429144529.GT4329@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?iso-8859-1?Q?Ville_Syrj=E4l=E4?= Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21h aWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiBTZW50OiBGcmlkYXksIEFwcmls IDI5LCAyMDE2IDg6MTUgUE0KPiBUbzogS2FubmFuLCBWYW5kYW5hIDx2YW5kYW5hLmthbm5hbkBp bnRlbC5jb20+Cj4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFNtaXRoLCBH YXJ5IEsKPiA8Z2FyeS5rLnNtaXRoQGludGVsLmNvbT4KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYy IDIvMl0gZHJtL2k5MTU6IFJlbmRlciBkZWNvbXByZXNzaW9uIHN1cHBvcnQgZm9yCj4gR2VuOSBh bmQgYWJvdmUKPiAKPiBPbiBGcmksIEFwciAyOSwgMjAxNiBhdCAwODoyNzowMFBNICswNTMwLCBW YW5kYW5hIEthbm5hbiB3cm90ZToKPiA+IFRoaXMgcGF0Y2ggaW5jbHVkZXMgZW5hYmxpbmcgcmVu ZGVyIGRlY29tcHJlc3Npb24gKFJDKSBhZnRlciBjaGVja2luZwo+ID4gYWxsIHRoZSByZXF1aXJl bWVudHMgKGZvcm1hdCwgdGlsaW5nLCByb3RhdGlvbiBldGMuKS4KPiA+Cj4gPiBUT0RPOgo+ID4g MS4gRGlzYWJsZSBzdGVyZW8gM0Qgd2hlbiByZW5kZXIgZGVjb21wIGlzIGVuYWJsZWQgKGJpdCA3 OjYpIDIuIFJlbmRlcgo+ID4gZGVjb21wcmVzc2lvbiBtdXN0IG5vdCBiZSB1c2VkIGluIFZUZCBw YXNzLXRocm91Z2ggbW9kZSAzLiBQcm9ncmFtCj4gPiBoYXNoaW5nIHNlbGVjdCBDSElDS0VOX01J U0MxIGJpdCAxNSA0LiBGb3IgR2VuMTAsIGFkZCBzdXBwb3J0IGZvciBSR0IKPiA+IDEwMTAxMDIg NS4gUkMtRkJDIHdvcmthcm91bmQgNi4gUkMgd2F0ZXJtYXJrIGNhbGN1bGF0aW9uCj4gPgo+ID4g VGhlIHJlYXNvbiBmb3IgdXNpbmcgYSBwbGFuZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mIGZiIG1vZGlm aWVyOi0gSW4KPiA+IEFuZHJvaWQsIE9HTCBwYXNzZXMgYSByZW5kZXIgY29tcHJlc3NlZCBidWZm ZXIgdG8gaGFyZHdhcmUgY29tcG9zZXIKPiA+IChIV0MpLCB3aGljaCB3b3VsZCB0aGVuIHJlcXVl c3QgYSBmbGlwIG9uIHRoYXQgYnVmZmVyIGFmdGVyIGNoZWNraW5nCj4gPiBpZiB0aGUgdGFyZ2V0 IGNhbiBzdXBwb3J0IHJlbmRlciBjb21wcmVzc2VkIGJ1ZmZlci4gRm9yIGV4YW1wbGUsIG9ubHkK PiA+IHBsYW5lcwo+ID4gMSBhbmQgMiBvbiBwaXBlcyAxIGFuZCAyIGNhbiBzdXBwb3J0IFJDLiBJ biBjYXNlIHRoZSB0YXJnZXQgY2Fubm90Cj4gPiBzdXBwb3J0IGl0LCBIV0Mgd2lsbCByZXZlcnQg YmFjayB0byBPR0wgcmVxdWVzdGluZyBmb3IgdW5jb21wcmVzc2VkCj4gPiBidWZmZXIuCj4gPiBI ZXJlLAo+ID4gaWYgcGxhbmUgcHJvcGVydHkgaXMgdXNlZCwgT0dMIHdvdWxkIHNlbmQgYmFjayB0 aGUgYnVmZmVyIChzYW1lIElEKQo+ID4gYWZ0ZXIgZGVjb21wcmVzc2lvbiwgbWFya2VkIHVuY29t cHJlc3NlZC4gSWYgZmIgbW9kaWZpZXIgd2FzIHVzZWQsIGEKPiA+IGRpZmZlcmVudCB2ZXJzaW9u IG9mIHRoZSBidWZmZXIgd291bGQgaGF2ZSB0byBiZSBtYWludGFpbmVkIGZvcgo+ID4gZGlmZmVy ZW50IGNvbWJpbmF0aW9ucyAtIGluIHRoZSBzaW1wbGUgY2FzZSBvZiByZW5kZXIgY29tcHJlc3Nl ZCB2cwo+ID4gdW5jb21wcmVzc2VkIGJ1ZmZlciwgdGhlcmUgd291bGQgYmUgMiBmYnMgd2l0aCAy IElEcy4gU28sIGluIHRoaXMKPiA+IGNhc2UsIE9HTCB3b3VsZCBnaXZlIGEgcmVmZXJlbmNlIHRv IGEgZmIgd2l0aCBhIGRpZmZlcmVudCBJRC4KPiA+IFRvIGF2b2lkIHRoZSBkaWZmaWN1bHR5IG9m IGtlZXBpbmcgdHJhY2sgb2YgbXVsdGlwbGUgZmJzIGFuZCB0aGUKPiA+IHN1YnNlcXVlbnQgY29t cGxleGl0eSBpbiBkZWJ1ZywgdGhlIGFyY2hpdGVjdHVyZSBmb3J1bSBkZWNpZGVkIHRvIGdvCj4g PiBhaGVhZCB3aXRoIGEgcGxhbmUgcHJvcGVydHkgZm9yIFJDLgo+ID4KPiA+IFtNYXl1cmVzaF0g QWRkZWQgdGhlIHBsYW5lIGNoZWNrIGluIHNrbF9jaGVja19jb21wcmVzc2lvbigpCj4gPgo+ID4g djI6IFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRzIGFkZHJlc3NlZAo+ID4gLSBSZW1vdmVkIFdBcyBz cGVjaWZpYyB0byBTS0wtQyBhbmQgQlhULUEKPiA+IC0gQXNzaWduIGNhcGFiaWxpdGllcyBhY2Nv cmRpbmcgdG8gcGlwZSBhbmQgcGxhbmUgZHVyaW5nIHByb3BlcnR5Cj4gPiBjcmVhdGlvbgo+ID4g LSBpbiBza2xfY2hlY2tfY29tcHJlc3Npb24oKSwgY2hlY2sgZm9yIGNvbmRpdGlvbnMgdGhhdCBt dXN0IGJlCj4gPiBzYXRpc2lmZWQKPiA+Cj4gPiBNYWludGFpbmluZyB0aGUgY2hlY2sgZm9yIHBp eGVsIGZvcm1hdCwgZXZlbiB0aG91Z2ggY29tcHJlc3NlZCBmYiBvZgo+ID4gZm9ybWF0IG90aGVy IFJHQjg4ODggc2hvdWxkIG5vdCBoYXZlIGJlZW4gY3JlYXRlZCwgdG8gYmUgb24gdGhlIHNhZmVy Cj4gc2lkZS4KPiA+IEFkZGVkIGNoZWNrcyBmb3IgQkdSODg4OCB0b28uCj4gPiBCaXRtYXNrIGlz IGJlaW5nIHVzZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBhY2NvbW1vZGF0ZSAyIG1vcmUgb3B0aW9u cwo+ID4gZXhwZWN0ZWQgdG8gYmUgYWRkZWQgaW4gZnV0dXJlLgo+ID4KPiA+IFRoaXMgcGF0Y2gg ZGVwZW5kcyBvbiBWaWxsZSdzIHBhdGNoIHNlcmllcyBvbiBmYi0+b2Zmc2V0cy4KPiA+IChSZWY6 IGdpdDovL2dpdGh1Yi5jb20vdnN5cmphbGEvbGludXguZ2l0IGZiX29mZnNldHNfMTQpCj4gPgo+ ID4gVGVzdGluZyBpcyBpbiBwcm9ncmVzcyBmb3IgdjIgb2YgdGhlIHBhdGNoLgo+ID4KPiA+IFNp Z25lZC1vZmYtYnk6IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+Cj4g PiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ IENjOiBTbWl0aCwgR2FyeSBLIDxnYXJ5Lmsuc21pdGhAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgfCAgIDEgKwo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgIHwgIDIyICsrKysrCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgfCAgMjQgKysrKystCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCAxMzUKPiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgICAgICB8ICAxMCArKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYyAgICAgICB8ICAyNyArKysrKy0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDIxMyBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggaW5kZXggMzJmMDU5Ny4uYmEzMmU3YyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiA+IEBAIC0xOTAxLDYgKzE5MDEsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7 Cj4gPgo+ID4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpicm9hZGNhc3RfcmdiX3Byb3BlcnR5Owo+ ID4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpmb3JjZV9hdWRpb19wcm9wZXJ0eTsKPiA+ICsJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqcmVuZGVyX2NvbXBfcHJvcGVydHk7Cj4gPgo+ID4gIAkvKiBoZGEv aTkxNSBhdWRpbyBjb21wb25lbnQgKi8KPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50 ICphdWRpb19jb21wb25lbnQ7IGRpZmYgLS1naXQKPiA+IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IGluZGV4IDI1 ZTIyOWIuLmRhNDVjYzkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBAQCAt NTgxNiw2ICs1ODE2LDI4IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ID4gIAkJCV9J RChpZCwgX1BTX0VDQ19TVEFUXzFBLCBfUFNfRUNDX1NUQVRfMkEpLCAgIFwKPiA+ICAJCQlfSUQo aWQsIF9QU19FQ0NfU1RBVF8xQiwgX1BTX0VDQ19TVEFUXzJCKSkKPiA+Cj4gPiArI2RlZmluZSBQ TEFORV9BVVhfRElTVF8xX0EJCTB4NzAxYzAKPiA+ICsjZGVmaW5lIFBMQU5FX0FVWF9ESVNUXzJf QQkJMHg3MDJjMAo+ID4gKyNkZWZpbmUgUExBTkVfQVVYX0RJU1RfMV9CCQkweDcxMWMwCj4gPiAr I2RlZmluZSBQTEFORV9BVVhfRElTVF8yX0IJCTB4NzEyYzAKPiA+ICsjZGVmaW5lIF9QTEFORV9B VVhfRElTVF8xKHBpcGUpIFwKPiA+ICsJCQlfUElQRShwaXBlLCBQTEFORV9BVVhfRElTVF8xX0Es Cj4gUExBTkVfQVVYX0RJU1RfMV9CKSAjZGVmaW5lCj4gPiArX1BMQU5FX0FVWF9ESVNUXzIocGlw ZSkgXAo+ID4gKwkJCV9QSVBFKHBpcGUsIFBMQU5FX0FVWF9ESVNUXzJfQSwKPiBQTEFORV9BVVhf RElTVF8yX0IpCj4gPiArI2RlZmluZSBQTEFORV9BVVhfRElTVChwaXBlLCBwbGFuZSkgICAgIFwK PiA+ICsJX01NSU9fUExBTkUocGxhbmUsIF9QTEFORV9BVVhfRElTVF8xKHBpcGUpLAo+IF9QTEFO RV9BVVhfRElTVF8yKHBpcGUpKQo+ID4gKwo+ID4gKyNkZWZpbmUgUExBTkVfQVVYX09GRlNFVF8x X0EJCTB4NzAxYzQKPiA+ICsjZGVmaW5lIFBMQU5FX0FVWF9PRkZTRVRfMl9BCQkweDcwMmM0Cj4g PiArI2RlZmluZSBQTEFORV9BVVhfT0ZGU0VUXzFfQgkJMHg3MTFjNAo+ID4gKyNkZWZpbmUgUExB TkVfQVVYX09GRlNFVF8yX0IJCTB4NzEyYzQKPiA+ICsjZGVmaW5lIF9QTEFORV9BVVhfT0ZGU0VU XzEocGlwZSkgICAgICAgXAo+ID4gKwkJX1BJUEUocGlwZSwgUExBTkVfQVVYX09GRlNFVF8xX0Es Cj4gUExBTkVfQVVYX09GRlNFVF8xX0IpCj4gPiArI2RlZmluZSBfUExBTkVfQVVYX09GRlNFVF8y KHBpcGUpICAgICAgIFwKPiA+ICsJCV9QSVBFKHBpcGUsIFBMQU5FX0FVWF9PRkZTRVRfMl9BLAo+ IFBMQU5FX0FVWF9PRkZTRVRfMl9CKQo+ID4gKyNkZWZpbmUgUExBTkVfQVVYX09GRlNFVChwaXBl LCBwbGFuZSkgICBcCj4gPiArCV9NTUlPX1BMQU5FKHBsYW5lLCBfUExBTkVfQVVYX09GRlNFVF8x KHBpcGUpLAo+ID4gK19QTEFORV9BVVhfT0ZGU0VUXzIocGlwZSkpCj4gPiArCj4gPiAgLyogbGVn YWN5IHBhbGV0dGUgKi8KPiA+ICAjZGVmaW5lIF9MR0NfUEFMRVRURV9BICAgICAgICAgICAweDRh MDAwCj4gPiAgI2RlZmluZSBfTEdDX1BBTEVUVEVfQiAgICAgICAgICAgMHg0YTgwMAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gPiBpbmRleCA3ZGU3 NzIxLi4yNjE3Yjc1IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXRvbWljX3BsYW5lLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21p Y19wbGFuZS5jCj4gPiBAQCAtMjI4LDggKzIyOCwxNiBAQCBpbnRlbF9wbGFuZV9hdG9taWNfZ2V0 X3Byb3BlcnR5KHN0cnVjdAo+IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgCQkJCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3BlcnR5LAo+ID4gIAkJCQl1aW50NjRfdCAqdmFsKQo+ID4gIHsKPiA+IC0J RFJNX0RFQlVHX0tNUygiVW5rbm93biBwbGFuZSBwcm9wZXJ0eSAnJXMnXG4iLCBwcm9wZXJ0eS0K PiA+bmFtZSk7Cj4gPiAtCXJldHVybiAtRUlOVkFMOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBzdGF0ZS0+cGxhbmUtPmRldi0KPiA+ZGV2X3ByaXZhdGU7Cj4gPiAr CXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9z dGF0ZShzdGF0ZSk7Cj4gPiArCj4gPiArCWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+cmVuZGVy X2NvbXBfcHJvcGVydHkpIHsKPiA+ICsJCSp2YWwgPSBpbnRlbF9zdGF0ZS0+cmVuZGVyX2NvbXBf ZW5hYmxlOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiVW5rbm93biBwbGFu ZSBwcm9wZXJ0eSAnJXMnXG4iLAo+IHByb3BlcnR5LT5uYW1lKTsKPiA+ICsJCXJldHVybiAtRUlO VkFMOwo+ID4gKwl9Cj4gPiArCXJldHVybiAwOwo+ID4gIH0KPiA+Cj4gPiAgLyoqCj4gPiBAQCAt MjUwLDYgKzI1OCwxNCBAQCBpbnRlbF9wbGFuZV9hdG9taWNfc2V0X3Byb3BlcnR5KHN0cnVjdAo+ IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgCQkJCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5 LAo+ID4gIAkJCQl1aW50NjRfdCB2YWwpCj4gPiAgewo+ID4gLQlEUk1fREVCVUdfS01TKCJVbmtu b3duIHBsYW5lIHByb3BlcnR5ICclcydcbiIsIHByb3BlcnR5LQo+ID5uYW1lKTsKPiA+IC0JcmV0 dXJuIC1FSU5WQUw7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0 YXRlLT5wbGFuZS0+ZGV2LQo+ID5kZXZfcHJpdmF0ZTsKPiA+ICsJc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHN0YXRlKTsKPiA+ICsK PiA+ICsJaWYgKHByb3BlcnR5ID09IGRldl9wcml2LT5yZW5kZXJfY29tcF9wcm9wZXJ0eSkgewo+ ID4gKwkJaW50ZWxfc3RhdGUtPnJlbmRlcl9jb21wX2VuYWJsZSA9IHZhbDsKPiA+ICsJfSBlbHNl IHsKPiA+ICsJCURSTV9ERUJVR19LTVMoIlVua25vd24gcGxhbmUgcHJvcGVydHkgJyVzJ1xuIiwK PiBwcm9wZXJ0eS0+bmFtZSk7Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gKwly ZXR1cm4gMDsKPiA+ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gaW5kZXggYmZjYzJlYi4uOWIyZmYyMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gPiBAQCAtMTE3LDYgKzExNyw5IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtl X3BmaXRfZGlzYWJsZShzdHJ1Y3QKPiA+IGludGVsX2NydGMgKmNydGMsIGJvb2wgZm9yY2UpOyAg c3RhdGljIHZvaWQKPiA+IGlyb25sYWtlX3BmaXRfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKTsgIHN0YXRpYyB2b2lkCj4gPiBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOyAgc3RhdGljIHZvaWQKPiA+IGludGVsX3ByZV9kaXNhYmxlX3By aW1hcnlfbm9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiA+ICtzdGF0aWMgaW50IHNr bF9jaGVja19jb21wcmVzc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gKwkJc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKPiA+ICsJCWVudW0gcGlwZSBwaXBlLCBp bnQgeCwgaW50IHkpOwo+ID4KPiA+ICB0eXBlZGVmIHN0cnVjdCB7Cj4gPiAgCWludAltaW4sIG1h eDsKPiA+IEBAIC0zMDQ1LDcgKzMwNDgsNyBAQCBzdGF0aWMgdm9pZAo+IHNreWxha2VfdXBkYXRl X3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgCWludCBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKPiA+ICAJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRl Owo+ID4gIAl1MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29mZnNldCwgcGxhbmVfc2l6ZTsKPiA+IC0J dW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247Cj4gPiAr CXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uLCByZW5k ZXJfY29tcDsKPiA+ICAJaW50IHhfb2Zmc2V0LCB5X29mZnNldDsKPiA+ICAJdTMyIHN1cmZfYWRk cjsKPiA+ICAJaW50IHNjYWxlcl9pZCA9IHBsYW5lX3N0YXRlLT5zY2FsZXJfaWQ7IEBAIC0zMDU3 LDYgKzMwNjAsOSBAQAo+IHN0YXRpYwo+ID4gdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAlpbnQgZHN0X3kgPSBwbGFuZV9zdGF0 ZS0+ZHN0LnkxOwo+ID4gIAlpbnQgZHN0X3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUt PmRzdCk7Cj4gPiAgCWludCBkc3RfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRz dCk7Cj4gPiArCXVuc2lnbmVkIGxvbmcgYXV4X2Rpc3QgPSAwOwo+ID4gKwl1MzIgYXV4X3hfb2Zm c2V0ID0gMCwgYXV4X3lfb2Zmc2V0ID0gMCwgYXV4X3N0cmlkZSA9IDA7Cj4gPiArCXUzMiB0aWxl X3Jvd19hZGp1c3RtZW50ID0gMCwgaGVpZ2h0X2luX21lbSA9IDA7Cj4gPgo+ID4gIAlwbGFuZV9j dGwgPSBQTEFORV9DVExfRU5BQkxFIHwKPiA+ICAJCSAgICBQTEFORV9DVExfUElQRV9HQU1NQV9F TkFCTEUgfAo+ID4gQEAgLTMwOTMsMTAgKzMwOTksMjggQEAgc3RhdGljIHZvaWQKPiBza3lsYWtl X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAlpbnRl bF9jcnRjLT5hZGp1c3RlZF94ID0geF9vZmZzZXQ7Cj4gPiAgCWludGVsX2NydGMtPmFkanVzdGVk X3kgPSB5X29mZnNldDsKPiA+Cj4gPiArCXJlbmRlcl9jb21wID0gcGxhbmVfc3RhdGUtPnJlbmRl cl9jb21wX2VuYWJsZTsKPiA+ICsJaWYgKHJlbmRlcl9jb21wKSB7Cj4gPiArCQlpbnQgY3BwID0g ZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gPiArCj4gPiArCQl0 aWxlX2hlaWdodCA9IGludGVsX3RpbGVfaGVpZ2h0KGRldl9wcml2LCBmYi0+bW9kaWZpZXJbMF0s Cj4gY3BwKTsKPiA+ICsKPiA+ICsJCWhlaWdodF9pbl9tZW0gPSAoZmItPm9mZnNldHNbMV0vZmIt PnBpdGNoZXNbMF0pOwo+ID4gKwkJdGlsZV9yb3dfYWRqdXN0bWVudCA9IGhlaWdodF9pbl9tZW0g JSB0aWxlX2hlaWdodDsKPiA+ICsJCWF1eF9kaXN0ID0gKGZiLT5waXRjaGVzWzBdICoKPiA+ICsJ CQkJKGhlaWdodF9pbl9tZW0gLSB0aWxlX3Jvd19hZGp1c3RtZW50KSk7Cj4gPiArCQlhdXhfc3Ry aWRlID0gc2tsX3BsYW5lX3N0cmlkZShmYiwgMSwgcm90YXRpb24pOwo+IAo+IFRoaXMgc3R1ZmYg c2hvdWxkbid0IGJlIGhlcmUgaWYgbXkgc3R1ZmYgaXMgdXNlZCBhcyBhIGJhc2UuIExpa2UgZm9y IG52MTIsIGl0Cj4gc2hvdWxkIGFsbCBiZSBjb21wdXRlZCB1cGZyb250Lgo+IAo+IEkgc2hvdWxk IHByb2JhYmx5IGdvIHJlYWQgdXAgb24gcmVuZGVyIGNvbXByZXNzaW9uIHNvIEknZCBhY3R1YWxs eSBrbm93Cj4gd2hhdCB0aGUgQVVYIG9mZnNldHMgYWN0dWFsbHkgbWVhbiBmb3IgaXQuCj4gCltW YW5kYW5hXSB5b3UgbWVhbiBza2xfY2hlY2tfbnYxMl9hdXhfc3VyZmFjZSgpID8KVGhlIGRlcGVu ZGVuY3kgdGhpcyBwYXRjaCBoYXMgb24gdGhlIGZiX29mZnNldCBzZXJpZXMgaXMgaW4gdGVybXMg b2Ygc2tsX3BsYW5lX3N0cmlkZSgpIGFuZCByZWxhdGVkIGRlZmluaXRpb25zLgpJIHdpbGwgZ28g dGhyb3VnaCB0aGUgbnYxMiBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgZmJfb2Zmc2V0IHNlcmllcyBh bmQgZ2V0IGJhY2suCgo+ID4gKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ERUNPTVBSRVNTSU9O X0VOQUJMRTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCXBsYW5lX2N0bCAmPSB+UExBTkVfQ1RMX0RF Q09NUFJFU1NJT05fRU5BQkxFOwo+ID4gKwl9Cj4gPiArCj4gPiAgCUk5MTVfV1JJVEUoUExBTkVf Q1RMKHBpcGUsIDApLCBwbGFuZV9jdGwpOwo+ID4gIAlJOTE1X1dSSVRFKFBMQU5FX09GRlNFVChw aXBlLCAwKSwgcGxhbmVfb2Zmc2V0KTsKPiA+ICAJSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUs IDApLCBwbGFuZV9zaXplKTsKPiA+ICAJSTkxNV9XUklURShQTEFORV9TVFJJREUocGlwZSwgMCks IHN0cmlkZSk7Cj4gPiArCUk5MTVfV1JJVEUoUExBTkVfQVVYX0RJU1QocGlwZSwgMCksIGF1eF9k aXN0IHwgYXV4X3N0cmlkZSk7Cj4gPiArCUk5MTVfV1JJVEUoUExBTkVfQVVYX09GRlNFVChwaXBl LCAwKSwgYXV4X3lfb2Zmc2V0PDwxNiB8Cj4gPiArYXV4X3hfb2Zmc2V0KTsKPiA+Cj4gPiAgCWlm IChzY2FsZXJfaWQgPj0gMCkgewo+ID4gIAkJdWludDMyX3QgcHNfY3RybCA9IDA7Cj4gPiBAQCAt MTE4NTYsNiArMTE4ODAsMTcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMo c3RydWN0Cj4gZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCQkJcmV0dXJuIHJldDsK PiA+ICAJfQo+ID4KPiA+ICsJaWYgKGZiICYmIHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0 YXRlKS0+Cj4gPiArCQkJcmVuZGVyX2NvbXBfZW5hYmxlKSB7Cj4gPiArCQlyZXQgPSBza2xfY2hl Y2tfY29tcHJlc3Npb24oZGV2LAo+ID4gKwkJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9z dGF0ZSksCj4gPiArCQkJCWludGVsX2NydGMtPnBpcGUsIGNydGMtPngsIGNydGMtPnkpOwo+ID4g KwkJaWYgKHJldCkgewo+ID4gKwkJCURSTV9ERUJVR19LTVMoIlJlbmRlciBjb21wciBjaGVja3Mg ZmFpbGVkXG4iKTsKPiA+ICsJCQlyZXR1cm4gcmV0Owo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4g PiAgCXdhc192aXNpYmxlID0gb2xkX3BsYW5lX3N0YXRlLT52aXNpYmxlOwo+ID4gIAl2aXNpYmxl ID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpLT52aXNpYmxlOwo+ID4KPiA+IEBA IC0xMzk3Miw2ICsxNDAwNyw2MyBAQCBza2xfbWF4X3NjYWxlKHN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjLAo+IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlCj4gPiAgCXJl dHVybiBtYXhfc2NhbGU7Cj4gPiAgfQo+ID4KPiA+ICtzdGF0aWMgaW50IHNrbF9jaGVja19jb21w cmVzc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gKwkJc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZSwKPiA+ICsJCWVudW0gcGlwZSBwaXBlLCBpbnQgeCwgaW50IHkp Cj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5i YXNlLmZiOwo+ID4gKwlpbnQgeF9vZmZzZXQ7Cj4gPiArCWludCBzcmNfdyA9IGRybV9yZWN0X3dp ZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKPiA+ICsKPiA+ICsJaWYgKCFJU19TS1lMQUtF KGRldikgJiYgIUlTX0JST1hUT04oZGV2KSkgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiUkMgc3Vw cG9ydCBvbiBDTkwrIG5lZWRzIHRvIGJlCj4gcmV2aXNpdGVkXG4iKTsKPiA+ICsJCXJldHVybiAt RUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCS8qCj4gPiArCSAqIFRPRE86Cj4gPiArCSAqIDEu IERpc2FibGUgc3RlcmVvIDNEIHdoZW4gcmVuZGVyIGRlY29tcCBpcyBlbmFibGVkIChiaXQgNzo2 KQo+ID4gKwkgKiAyLiBSZW5kZXIgZGVjb21wcmVzc2lvbiBtdXN0IG5vdCBiZSB1c2VkIGluIFZU ZCBwYXNzLXRocm91Z2gKPiBtb2RlCj4gPiArCSAqIDMuIFByb2dyYW0gaGFzaGluZyBzZWxlY3Qg Q0hJQ0tFTl9NSVNDMSBiaXQgMTUKPiA+ICsJICovCj4gPiArCj4gPiArCWlmIChwbGFuZV9zdGF0 ZS0+YmFzZS5yb3RhdGlvbiAmCj4gPiArCQl+KEJJVChEUk1fUk9UQVRFXzApIHwgQklUKERSTV9S T1RBVEVfMTgwKSkpIHsKPiA+ICsJCURSTV9ERUJVR19LTVMoIlJDIHN1cHBvcnQgb25seSB3aXRo IDAvMTgwIGRlZ3JlZQo+IHJvdGF0aW9uXG4iKTsKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4g Kwl9Cj4gPiArCj4gPiArCWlmICgoZmItPm1vZGlmaWVyWzBdICE9IEk5MTVfRk9STUFUX01PRF9Z X1RJTEVEKSAmJgo+ID4gKwkJCShmYi0+bW9kaWZpZXJbMF0gIT0gSTkxNV9GT1JNQVRfTU9EX1lm X1RJTEVEKSkgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiUkMgc3VwcG9ydGVkIG9ubHkgd2l0aCBZ LXRpbGVcbiIpOwo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYg KChmYi0+cGl4ZWxfZm9ybWF0ICE9IERSTV9GT1JNQVRfWEJHUjg4ODgpICYmCj4gPiArCQkoZmIt PnBpeGVsX2Zvcm1hdCAhPSBEUk1fRk9STUFUX0FCR1I4ODg4KSAmJgo+ID4gKwkJKGZiLT5waXhl bF9mb3JtYXQgIT0gRFJNX0ZPUk1BVF9YUkdCODg4OCkgJiYKPiA+ICsJCShmYi0+cGl4ZWxfZm9y bWF0ICE9IERSTV9GT1JNQVRfQVJHQjg4ODgpKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJSQyBz dXBwb3J0ZWQgb25seSB3aXRoIFJHQjg4ODgKPiBmb3JtYXRzXG4iKTsKPiA+ICsJCXJldHVybiAt RUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCS8qCj4gPiArCSAqIEZvciBTS0wgJiBCWFQsCj4g PiArCSAqIFdoZW4gdGhlIHJlbmRlciBjb21wcmVzc2lvbiBpcyBlbmFibGVkIHdpdGggcGxhbmUK PiA+ICsJICogd2lkdGggZ3JlYXRlciB0aGFuIDM4NDAgYW5kIGhvcml6b250YWwgcGFubmluZywK PiA+ICsJICogdGhlIHN0cmlkZSBwcm9ncmFtbWVkIGluIHRoZSBQTEFORV9TVFJJREUgcmVnaXN0 ZXIKPiA+ICsJICogbXVzdCBiZSBtdWx0aXBsZSBvZiA0Lgo+ID4gKwkgKi8KPiA+ICsJeF9vZmZz ZXQgPSB4Owo+ID4gKwo+ID4gKwlpZiAoc3JjX3cgPiAzODQwICYmIHhfb2Zmc2V0ICE9IDApIHsK PiA+ICsJCURSTV9ERUJVR19LTVMoIlJDOiB3aWR0aCA+IDM4NDAsIGhvcml6b250YWwKPiBwYW5u aW5nXG4iKTsKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVy biAwOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50Cj4gPiAgaW50ZWxfY2hlY2tfcHJpbWFy eV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICAJCQkgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLCBAQCAtMTQxMjYsNgo+ICsxNDIxOCw5IEBACj4gPiBzdGF0 aWMgc3RydWN0IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRy bV9kZXZpY2UKPiAqZGV2LAo+ID4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkKPiA+ ICAJCWludGVsX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShkZXYsIHByaW1hcnkpOwo+ID4KPiA+ ICsJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4gPiArCQlpbnRlbF9jcmVhdGVfcmVu ZGVyX2NvbXBfcHJvcGVydHkoZGV2LCBwcmltYXJ5KTsKPiA+ICsKPiA+ICAJZHJtX3BsYW5lX2hl bHBlcl9hZGQoJnByaW1hcnktPmJhc2UsCj4gJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7Cj4g Pgo+ID4gIAlyZXR1cm4gJnByaW1hcnktPmJhc2U7Cj4gPiBAQCAtMTQxNTUsNiArMTQyNTAsNDQg QEAgdm9pZCBpbnRlbF9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoc3RydWN0Cj4gZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKgo+ID4gIAkJCQlwbGFuZS0+YmFzZS5zdGF0ZS0+ cm90YXRpb24pOwo+ID4gIH0KPiA+Cj4gPiArdm9pZCBpbnRlbF9jcmVhdGVfcmVuZGVyX2NvbXBf cHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsJCXN0cnVjdCBpbnRlbF9wbGFu ZSAqcGxhbmUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUgPSAm cGxhbmUtPmJhc2U7Cj4gPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBCSVQoQ09NUF9VTkNPTVBS RVNTRUQpOwo+ID4gKwo+ID4gKwlzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlz dCByY19zdGF0dXNbXSA9IHsKPiA+ICsJCXsgQ09NUF9VTkNPTVBSRVNTRUQsICAgIlVuY29tcHJl c3NlZC9ub3QgY2FwYWJsZSIgfSwKPiA+ICsJCXsgQ09NUF9SRU5ERVIsICAiT25seSByZW5kZXIg ZGVjb21wcmVzc2lvbiIgfSwKPiA+ICsJfTsKPiA+ICsKPiA+ICsJaWYgKHBsYW5lLT5waXBlICE9 IFBJUEVfQyB8fAo+ID4gKwkJKGRybV9wbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklN QVJZIHx8Cj4gPiArCQkJKGRybV9wbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZ Cj4gJiYKPiA+ICsJCQkgcGxhbmUtPnBsYW5lID09IFBMQU5FX0EpKSkgewo+ID4gKwkJZmxhZ3Mg fD0gQklUKENPTVBfUkVOREVSKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAoIWRldl9wcml2LT5y ZW5kZXJfY29tcF9wcm9wZXJ0eSkgewo+ID4gKwkJZGV2X3ByaXYtPnJlbmRlcl9jb21wX3Byb3Bl cnR5ID0KPiA+ICsJCQlkcm1fcHJvcGVydHlfY3JlYXRlX2JpdG1hc2soZGV2LCAwLAo+ID4gKwkJ CQkJInJlbmRlciBjb21wcmVzc2lvbiIsCj4gPiArCQkJCQlyY19zdGF0dXMsIEFSUkFZX1NJWkUo cmNfc3RhdHVzKSwKPiA+ICsJCQkJCWZsYWdzKTsKPiA+ICsJCWlmICghZGV2X3ByaXYtPnJlbmRl cl9jb21wX3Byb3BlcnR5KSB7Cj4gPiArCQkJRFJNX0VSUk9SKCJSQzogRmFpbGVkIHRvIGNyZWF0 ZSBwcm9wZXJ0eVxuIik7Cj4gPiArCQkJcmV0dXJuOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4g PiArCWlmIChkZXZfcHJpdi0+cmVuZGVyX2NvbXBfcHJvcGVydHkpIHsKPiA+ICsJCWRybV9vYmpl Y3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZS5iYXNlLAo+ID4gKwkJCQlkZXZfcHJpdi0+ cmVuZGVyX2NvbXBfcHJvcGVydHksIDApOwo+ID4gKwl9Cj4gPiArCWRldi0+bW9kZV9jb25maWcu YWxsb3dfYXV4X3BsYW5lID0gdHJ1ZTsgfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQKPiA+ICBpbnRl bF9jaGVja19jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgCQkJIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBkaWZmIC0tZ2l0Cj4gPiBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+IGluZGV4IGNmMjc5ODkuLjM4MDA2ZTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiA+IEBAIC0zMDMsNiArMzAzLDEwIEBAIHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgewo+ID4gIAlib29sIHNraXBfaW50ZXJtZWRpYXRlX3dtOwo+ID4gIH07Cj4gPgo+ID4g Ky8qIHJlbmRlciBjb21wcmVzc2lvbiBwcm9wZXJ0eSBiaXRzICovCj4gPiArI2RlZmluZSBDT01Q X1VOQ09NUFJFU1NFRCAgICAgICAgICAwCj4gPiArI2RlZmluZSBDT01QX1JFTkRFUiAgICAgICAg ICAgICAgICAxCj4gPiArCj4gPiAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHsKPiA+ICAJc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSBiYXNlOwo+ID4gIAlzdHJ1Y3QgZHJtX3JlY3Qgc3JjOwo+ID4g QEAgLTMzNCw2ICszMzgsOSBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+ID4KPiA+ICAJ LyogYXN5bmMgZmxpcCByZWxhdGVkIHN0cnVjdHVyZXMgKi8KPiA+ICAJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICp3YWl0X3JlcTsKPiA+ICsKPiA+ICsJLyogUmVuZGVyIGNvbXByZXNzaW9u ICovCj4gPiArCXVuc2lnbmVkIGludCByZW5kZXJfY29tcF9lbmFibGU7Cj4gPiAgfTsKPiA+Cj4g PiAgc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnIHsKPiA+IEBAIC0xMTk2LDYgKzEy MDMsOSBAQCBpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAodW5zaWduZWQgaW50Cj4gcm90YXRpb24p Cj4gPiB2b2lkIGludGVsX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ID4gIAkJCQkJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSk7Cj4gPgo+ID4gK3Zv aWQgaW50ZWxfY3JlYXRlX3JlbmRlcl9jb21wX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gPiArCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKTsKPiA+ICsKPiA+ICB2b2lkIGFz c2VydF9wY2hfdHJhbnNjb2Rlcl9kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiAgCQkJCSAgICBlbnVtIHBpcGUgcGlwZSk7Cj4gPgo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPiBpbmRleCAwZjNlMjMwLi4yNTkzYmNmIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPiBAQCAtMTkzLDcgKzE5Myw3IEBA IHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+ID4gIAljb25z dCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5j a2V5Owo+ID4gIAl1MzIgc3VyZl9hZGRyOwo+ID4gIAl1MzIgdGlsZV9oZWlnaHQsIHBsYW5lX29m ZnNldCwgcGxhbmVfc2l6ZTsKPiA+IC0JdW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3Rh dGUtPmJhc2Uucm90YXRpb247Cj4gPiArCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0 YXRlLT5iYXNlLnJvdGF0aW9uLCByZW5kZXJfY29tcDsKPiA+ICAJaW50IHhfb2Zmc2V0LCB5X29m ZnNldDsKPiA+ICAJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5kc3QueDE7Cj4gPiAgCWludCBj cnRjX3kgPSBwbGFuZV9zdGF0ZS0+ZHN0LnkxOwo+ID4gQEAgLTIwNSw2ICsyMDUsOSBAQCBza2xf dXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKPiA+ICAJdWludDMyX3Qg c3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ID4gIAlj b25zdCBzdHJ1Y3QgaW50ZWxfc2NhbGVyICpzY2FsZXIgPQo+ID4gIAkJJmNydGNfc3RhdGUtPnNj YWxlcl9zdGF0ZS5zY2FsZXJzW3BsYW5lX3N0YXRlLT5zY2FsZXJfaWRdOwo+ID4gKwl1bnNpZ25l ZCBsb25nIGF1eF9kaXN0ID0gMDsKPiA+ICsJdTMyIGF1eF94X29mZnNldCA9IDAsIGF1eF95X29m ZnNldCA9IDAsIGF1eF9zdHJpZGUgPSAwOwo+ID4gKwl1MzIgdGlsZV9yb3dfYWRqdXN0bWVudCA9 IDAsIGhlaWdodF9pbl9tZW0gPSAwOwo+ID4KPiA+ICAJcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VO QUJMRSB8Cj4gPiAgCQlQTEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfAo+ID4gQEAgLTI1NCw5 ICsyNTcsMjggQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUs Cj4gPiAgCX0KPiA+ICAJcGxhbmVfb2Zmc2V0ID0geV9vZmZzZXQgPDwgMTYgfCB4X29mZnNldDsK PiA+Cj4gPiArCXJlbmRlcl9jb21wID0gcGxhbmVfc3RhdGUtPnJlbmRlcl9jb21wX2VuYWJsZTsK PiA+ICsJaWYgKHJlbmRlcl9jb21wKSB7Cj4gPiArCQlpbnQgY3BwID0gZHJtX2Zvcm1hdF9wbGFu ZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gPiArCj4gPiArCQl0aWxlX2hlaWdodCA9IGlu dGVsX3RpbGVfaGVpZ2h0KGRldl9wcml2LCBmYi0+bW9kaWZpZXJbMF0sCj4gY3BwKTsKPiA+ICsK PiA+ICsJCWhlaWdodF9pbl9tZW0gPSAoZmItPm9mZnNldHNbMV0vZmItPnBpdGNoZXNbMF0pOwo+ ID4gKwkJdGlsZV9yb3dfYWRqdXN0bWVudCA9IGhlaWdodF9pbl9tZW0gJSB0aWxlX2hlaWdodDsK PiA+ICsJCWF1eF9kaXN0ID0gKGZiLT5waXRjaGVzWzBdICoKPiA+ICsJCQkJKGhlaWdodF9pbl9t ZW0gLSB0aWxlX3Jvd19hZGp1c3RtZW50KSk7Cj4gPiArCQlhdXhfc3RyaWRlID0gc2tsX3BsYW5l X3N0cmlkZShmYiwgMSwgcm90YXRpb24pOwo+ID4gKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9E RUNPTVBSRVNTSU9OX0VOQUJMRTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCXBsYW5lX2N0bCAmPSB+ UExBTkVfQ1RMX0RFQ09NUFJFU1NJT05fRU5BQkxFOwo+ID4gKwl9Cj4gPiArCj4gPiAgCUk5MTVf V1JJVEUoUExBTkVfT0ZGU0VUKHBpcGUsIHBsYW5lKSwgcGxhbmVfb2Zmc2V0KTsKPiA+ICAJSTkx NV9XUklURShQTEFORV9TVFJJREUocGlwZSwgcGxhbmUpLCBzdHJpZGUpOwo+ID4gIAlJOTE1X1dS SVRFKFBMQU5FX1NJWkUocGlwZSwgcGxhbmUpLCBwbGFuZV9zaXplKTsKPiA+ICsJSTkxNV9XUklU RShQTEFORV9BVVhfRElTVChwaXBlLCBwbGFuZSksIGF1eF9kaXN0IHwgYXV4X3N0cmlkZSk7Cj4g PiArCUk5MTVfV1JJVEUoUExBTkVfQVVYX09GRlNFVChwaXBlLCBwbGFuZSksCj4gPiArCQkJYXV4 X3lfb2Zmc2V0PDwxNiB8IGF1eF94X29mZnNldCk7Cj4gPgo+ID4gIAkvKiBwcm9ncmFtIHBsYW5l IHNjYWxlciAqLwo+ID4gIAlpZiAocGxhbmVfc3RhdGUtPnNjYWxlcl9pZCA+PSAwKSB7Cj4gPiBA QCAtMTEyMCw2ICsxMTQyLDkgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBlbnVtCj4gPiBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiA+Cj4gPiAgCWludGVsX2NyZWF0 ZV9yb3RhdGlvbl9wcm9wZXJ0eShkZXYsIGludGVsX3BsYW5lKTsKPiA+Cj4gPiArCWlmIChJTlRF TF9JTkZPKGRldiktPmdlbiA+PSA5KQo+ID4gKwkJaW50ZWxfY3JlYXRlX3JlbmRlcl9jb21wX3By b3BlcnR5KGRldiwgaW50ZWxfcGxhbmUpOwo+ID4gKwo+ID4gIAlkcm1fcGxhbmVfaGVscGVyX2Fk ZCgmaW50ZWxfcGxhbmUtPmJhc2UsCj4gJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7Cj4gPgo+ ID4gIAlyZXR1cm4gMDsKPiA+IC0tCj4gPiAxLjkuMQo+IAo+IC0tCj4gVmlsbGUgU3lyasOkbMOk Cj4gSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=