From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 30/49] drm/i915/bxt: add display initialize/uninitialize sequence Date: Tue, 07 Apr 2015 17:07:25 +0300 Message-ID: <1428415645.18813.33.camel@intel.com> References: <1426585215-8788-1-git-send-email-imre.deak@intel.com> <1426585215-8788-31-git-send-email-imre.deak@intel.com> <20150402163252.GC17410@intel.com> Reply-To: imre.deak@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 ED4D86E579 for ; Tue, 7 Apr 2015 07:08:07 -0700 (PDT) In-Reply-To: <20150402163252.GC17410@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTUtMDQtMDIgYXQgMTk6MzIgKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToK PiBPbiBUdWUsIE1hciAxNywgMjAxNSBhdCAxMTozOTo1NkFNICswMjAwLCBJbXJlIERlYWsgd3Jv dGU6Cj4gPiBGcm9tOiBWYW5kYW5hIEthbm5hbiA8dmFuZGFuYS5rYW5uYW5AaW50ZWwuY29tPgo+ ID4gCj4gPiBBZGQgZGlzcGxheSBjbG9jay9QSFkgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYXMg cGVyIEJTcGVjLgo+ID4gCj4gPiBVbnRpbCBHT1AvVkJJT1MgcHJvdmlkZXMgYW4gdXBwZXIgbGlt aXQgdmFsdWUgZm9yIENEQ0xLLCBjb21wYXJpbmcgY2xvY2sKPiA+IHZhbHVlIHdpdGggNjI0IE1I eiBhbmQgcmV0dXJuaW5nIDAgaW4gY2FzZSBpdCBleGNlZWRzLgo+ID4gCj4gPiBOb3RlIHRoYXQg dGhlIENEIGNsb2NrIGFuZCBQSFkgaW5pdGlhbGl6YXRpb24vdW5pbml0aWFsaXphdGlvbiBhcmUg ZG9uZQo+ID4gYXQgdGhlaXIgY3VycmVudCBwbGFjZSBvbmx5IGZvciBzaW1wbGljaXR5LCBpbiBh IGZ1dHVyZSBwYXRjaCAtIHdoZW4gbW9yZQo+ID4gb2YgdGhlIHJ1bnRpbWUgUE0gZmVhdHVyZXMg d2lsbCBiZSBlbmFibGVkIC0gdGhlc2Ugd2lsbCBiZSBtb3ZlZCB0bwo+ID4gcG93ZXIgd2VsbCMx IGFuZCBtb2Rlc2V0IGVuY29kZXIgZW5hYmxpbmcvZGlzYWJsaW5nIGhvb2tzIHJlc3BlY3RpdmVs eS4KPiA+IFRoaXMgYWxzbyBtZWFucyB0aGF0IGF0bSBkeW5hbWljIHBvd2VyIGdhdGluZyBwb3dl ciB3ZWxsICMyIGlzCj4gPiBlZmZlY3RpdmVseSBkaXNhYmxlZC4KPiAKPiBPSywgSSd2ZSBnb25l IHRocm91Z2ggdGhlIFBIWSBzdHVmZiBhIGJpdCBub3csIGFuZCBza2lwcGVkIHRoZSBjZGNsawo+ IHN0dWZmIHRoaXMgdGltZS4KPiAKPiA+IAo+ID4gdjE6IEFkZGVkIGZ1bmN0aW9uIGRlZmluaXRp b25zIGluIGhlYWRlciBmaWxlcwo+ID4gdjI6IEltcmUncyByZXZpZXcgY29tbWVudHMgYWRkcmVz c2VkCj4gPiAtIE1vdmVkIENEQ0xLIHJlbGF0ZWQgZGVmaW5pdGlvbnMgdG8gaTkxNV9yZWcuaAo+ ID4gLSBSZW1vdmVkIGRlZmludGlvbnMgZm9yIENEQ0xLIGZyZXF1ZW5jeQo+ID4gLSBTcGxpdCB1 bmluaXRfY2RjbGsoKSBieSBhZGRpbmcgYSBwaHlfdW5pbml0IGZ1bmN0aW9uCj4gPiAtIENhbGN1 bGF0ZSBmcmVxIGFuZCBkZWNpbWFsIGJhc2VkIG9uIGlucHV0IGZyZXF1ZW5jeQo+ID4gLSBQcm9n cmFtIFNTQSBwcmVjaGFyZ2UgYmFzZWQgb24gaW5wdXQgZnJlcXVlbmN5Cj4gPiAtIFVzZSB3YWl0 X2ZvciAxbXMgaW5zdGVhZCAyMDB1cyB1ZGVsYXkgZm9yIERFIFBMTCBsb2NraW5nCj4gPiAtIFJl bW92ZWQgaW5pdGlhbCB2YWx1ZSBmb3IgZGl2aWRlciwgZnJlcSwgZGVjaW1hbCwgcmF0aW8uCj4g PiAtIFJlcGxhY2VkIHBvbGxpbmcgbG9vcHMgd2l0aCB3YWl0X2Zvcgo+ID4gLSBQYXJhbWV0ZXJp emVkIGxhdGVuY3kgb3B0aW0gc2V0dGluZwo+ID4gLSBGaXggdGhlIHBhcnRzIHdoZXJlIERFIFBM TCBoYXMgdG8gYmUgZGlzYWJsZWQuCj4gPiAtIENhbGwgQ0RDTEsgc2VsZWN0aW9uIGZyb20gbW9k ZSBzZXQKPiA+IAo+ID4gdjM6IChpbXJlKQo+ID4gLSBhZGQgbm90ZSBhYm91dCB0aGUgcGxhbiB0 byBtb3ZlIHRoZSBjZGNsay9waHkgaW5pdCB0byBhIGJldHRlciBwbGFjZQo+ID4gLSB0YWtlIHJw cy5od19sb2NrIGFyb3VuZCBwY29kZSBhY2Nlc3MKPiA+IC0gZml4IERESSBQSFkgdGltZW91dCB2 YWx1ZQo+ID4gLSBzcXVhc2ggaW4gVmFuZGFuYSdzICJQT1JUX0NMMkNNX0RXNl9BIEJVTiBmaXgi LAo+ID4gICAiRERJIFBIWSBwcm9ncmFtbWluZyByZWdpc3RlciBkZWZuIiwgIkRvIGRkaV9waHlf aW5pdCBhbHdheXMiLAo+ID4gICAiQ2hlY2sgQ0RDTEsgdXBwZXIgbGltaXQiIHBhdGNoZXMKPiA+ IC0gbW92ZSBQSFkgcmVnaXN0ZXIgbWFjcm9zIG5leHQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgQ0hW L1ZMViBtYWNyb3MKPiA+IC0gbW92ZSBERSBQTEwgcmVnaXN0ZXIgbWFjcm9zIGhlcmUgZnJvbSBh bm90aGVyIHBhdGNoIHNpbmNlIHRoZXkgYXJlCj4gPiAgIHVzZWQgaGVyZSBmaXJzdAo+ID4gLSBh ZGQgQlhUXyBwcmVmaXggdG8gQ0RDTEsgZmxhZ3MKPiA+IC0gcy9DT01NT05fUkVTRVQvQ09NTU9O X1JFU0VUX0RJUy8gYW5kIGNsYXJpZnkgcmVsYXRlZCBjb2RlIGNvbW1lbnRzCj4gPiAtIGZpeCBp bmNvcnJlY3QgcmVhZCB2YWx1ZSBmb3IgdGhlIFJNVyBvZiBCWFRfUEhZX0NUTF9GQU1JTFlfRERJ Cj4gPiAtIGZpeCB1c2luZyBHVF9ESVNQTEFZX0VEUF9QT1dFUl9PTiB2cy4gR1RfRElTUExBWV9E RElfUE9XRVJfT04KPiA+ICAgd2hlbiBwb3dlcmluZyBvbiBEREkgcG9ydHMKPiA+IC0gZml4IGlu Y29ycmVjdCBwb3J0IHdoZW4gc2V0dGluZyBCWFRfUE9SVF9UWF9EVzE0X0xOIGZvciBEREkgcG9y dHMKPiA+IC0gYWRkIG1pc3NpbmcgbWFza2luZyB3aGVuIHByb2dyYW1taW5nIENEQ0xLX0ZSRVFf REVDSU1BTAo+ID4gLSBhZGQgbWlzc2luZyBwb3dlcmluZyBvbiBmb3IgRERJLUMgcG9ydCwgcmVu YW1lIE9DTDJfTERPRlVTRV9QV1JfRU4KPiA+ICAgdG8gT0NMMl9MRE9GVVNFX1BXUl9ESVMgdG8g cmVkdWNlIGNvbmZ1c2lvbgo+ID4gLSBhZGQgbm90ZSBhYm91dCBtaXNtYXRjaCB3aXRoIGJzcGVj IGluIHRoZSBQT1JUX1JFRl9EVzYgZmllbGRzCj4gPiAtIGZhY3RvciBvdXQgUEhZIGluaXQgY29k ZSB0byBhIG5ldyBmdW5jdGlvbiwgc28gd2UgY2FuIGNhbGwgaXQgZm9yCj4gPiAgIFBIWV9BIGFu ZCBQSFlfQkMsIGluc3RlYWQgb2Ygb3Blbi1jb2RpbmcgdGhlIHNhbWUKPiA+IAo+ID4gU2lnbmVk LW9mZi1ieTogVmFuZGFuYSBLYW5uYW4gPHZhbmRhbmEua2FubmFuQGludGVsLmNvbT4gKHYyKQo+ ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+ID4gLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgMTI2ICsrKysrKysr KysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8IDI5MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8ICA3NSArKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDQgKwo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgNDk2IGlu c2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBpbmRleCBiNDQ3 NGQzLi5hMzU3OWMwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gQEAgLTEx MjAsNiArMTEyMCwxMTAgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPiAgI2RlZmlu ZSAgIERQSU9fRlJDX0xBVEVOQ1lfU0hGSVQJOAo+ID4gICNkZWZpbmUgQ0hWX1RYX0RXMTQoY2gs IGxhbmUpIF9UWExBTkUoY2gsIGxhbmUsIDB4YjgpCj4gPiAgI2RlZmluZSAgIERQSU9fVVBBUl9T SElGVAkJMzAKPiA+ICsKPiA+ICsvKiBCWFQgUEhZIHJlZ2lzdGVycyAqLwo+ID4gK2VudW0gYnh0 X3BoeSB7Cj4gPiArCUJYVF9QSFlfQSwKPiA+ICsJQlhUX1BIWV9CQwo+ID4gK307Cj4gCj4gV2Ug aGF2ZSBlbnVtIGRwaW9fcGh5IGFscmVhZHkuIEFsdGhvdWdoIGhlcmUgd2UgaGF2ZSBkZWZpbmVk IDAgdG8gYmUgdGhlCj4gc2luZ2xlIGNoYW5uZWwgUEhZIGFuZCAxIGlzIHRoZSB0d28gY2hhbm5l bCBQSFksICB3aGVyZWFzIG9uIENIViBpdCdzCj4gdGhlIG90aGVyIHdheSBhcm91bmQuIEknbSBn b2luZyB0byBzdWdnZXN0IHdlIGZsaXAgQlhUIG92ZXIgdG8gdXNlIHRoZQo+IENIViBzY2hlbWUg dG8gYXZvaWQgYW55IHN1cnBpc2VzIGxhdGVyIGlmIHdlIGFjdHVhbHkgdHJ5IHRvIHVuaWZ5IHRo ZQo+IGNvZGUuCgpZZWEsIEkgaGF2ZW4ndCBub3RpY2VkIGl0LCB3aWxsIHVzZSB0aGF0IGluc3Rl YWQuCgo+ID4gKwo+ID4gKyNkZWZpbmUgQlhUX1BIWShwaHksIGEsIGIpCQkoKGEpICsgKHBoeSkg KiAoKGIpIC0gKGEpKSkKPiAKPiBUaGlzIHNlZW1zIHRvIGJlIGp1c3QgYW5vdGhlciBfUElQRSgp LCBzaG91bGQgYXQgbGVhc3QgaGF2ZSBhbgo+IHVuZGVyc2NvcmUgc28gdGhhdCBwZW9wbGUgZG9u J3QgY29uZnVzZSBpdCB3aXRoIHNvbWV0aGluZyB0aGV5IGFyZQo+IHN1cHBvc2VkIHRvIHVzZS4K Ck9rLCBJIGNhbiByZXdyaXRlIHRoaXMgdG8KI2RlZmluZSBfQlhUX1BIWShwaHksIGEsIGIpCV9Q SVBFKHBoeSwgYSwgYikKCj4gCj4gPiArCj4gPiArI2RlZmluZSBCWFRfUF9DUl9HVF9ESVNQX1BX Uk9OXzBfMl8wX0dUVE1NQURSCTB4MTM4MDkwCj4gCj4gV2UgY2FuIGRyb3AgdGhlIF8wXzJfMF9H VFRNTUFEUiBzdWZmaXgsIHdlJ3ZlIG5ldmVyIGluY2x1ZGVkIGl0IGZvciBhbnkKPiBvdGhlciBw bGF0Zm9ybXMgZWl0aGVyLgoKT2suCgo+ID4gKyNkZWZpbmUgICBfRURQX1BPV0VSX09OCQkJCSgx IDw8IDEpCj4gPiArI2RlZmluZSAgIF9ERElfUE9XRVJfT04JCQkJKDEgPDwgMCkKPiA+ICsjZGVm aW5lICAgR1RfRElTUExBWV9QT1dFUl9PTihwaHkpCQlCWFRfUEhZKHBoeSwgX0VEUF9QT1dFUl9P TiwgXAo+ID4gKwkJCQkJCQlfRERJX1BPV0VSX09OKQo+IAo+IFVzaW5nIGEgX1BJUEUoKSB0eXBl IG9mIG1hY3JvIGZvciByZWdpc3RlciBiaXRzIHNlZW1zIGEgYml0IHVudXN1YWwuCj4gSSdkIGp1 c3Qgb3BlbiBjb2RlIGl0IGFzICgxIDw8IChwaHkpKSBvciBzb21ldGhpbmcuIFRoYXQgYWxzbyB3 b3JrCj4gYmV0dGVyIGlmIHdlIHRoZSBQSFlzIGFyb3VuZCBzbyB0aGF0IFBIWTAgaXMgdGhlIGR1 YWwgY2hhbm5lbCBQSFkuCgpPaywgd2lsbCByZXdyaXRlIGl0LgoKPiA+ICsKPiA+ICsjZGVmaW5l IF9QSFlfQ1RMX0ZBTUlMWV9FRFAJCTB4NjRDODAKPiA+ICsjZGVmaW5lIF9QSFlfQ1RMX0ZBTUlM WV9EREkJCTB4NjRDOTAKPiA+ICsjZGVmaW5lICAgQ09NTU9OX1JFU0VUX0RJUwkJKDEgPDwgMzEp Cj4gPiArI2RlZmluZSBCWFRfUEhZX0NUTF9GQU1JTFkocGh5KQkJQlhUX1BIWShwaHksIF9QSFlf Q1RMX0ZBTUlMWV9FRFAsIFwKPiA+ICsJCQkJCQkgICAgIF9QSFlfQ1RMX0ZBTUlMWV9EREkpCj4g PiArCj4gPiArLyogQlhUIFBIWSBjb21tb24gbGFuZSByZWdpc3RlcnMgKi8KPiA+ICsjZGVmaW5l IF9QT1JUX0NMMUNNX0RXMF9BCQkweDE2MjAwMAo+ID4gKyNkZWZpbmUgX1BPUlRfQ0wxQ01fRFcw X0JDCQkweDZDMDAwCj4gPiArI2RlZmluZSAgIFBIWV9QT1dFUl9HT09ECQkoMSA8PCAxNikKPiA+ ICsjZGVmaW5lIEJYVF9QT1JUX0NMMUNNX0RXMChwaHkpCQlCWFRfUEhZKHBoeSwgX1BPUlRfQ0wx Q01fRFcwX0EsCVwKPiA+ICsJCQkJCQkgICAgIF9QT1JUX0NMMUNNX0RXMF9CQykKPiAKPiBJJ20g YSBiaXQgc2FkIHRoZXNlIGFyZSBub3Qgc2hhcmluZyB0aGUgQ0hWIHJlZyBkZWZpbmVzLCBvciBl dmVuCj4gcmVzZW1ibGUgdGhlbSBpbiBhbnkgd2F5LgoKSSBhZ3JlZSB0aGlzIGlzbid0IGlkZWFs LiBJJ3ZlIGFscmVhZHkgcmVmYWN0b3JlZCBzb21lIHBhcnRzIGluIHRoZQpvcmlnaW5hbCB2ZXJz aW9uIG9mIHRoaXMgcGF0Y2ggKHNlZSB0aGUgY29tbWl0IHZlcnNpb24gbG9nKSB0byBicmluZyBp dApjbG9zZXIgdG8gQ0hWLCBidXQgdGhlcmUgaXMgZGVmaW5pdGVseSBtb3JlIHRvIGRvLiBJJ2Qg c2F5IGl0J3MgYmV0dGVyCnRvIGRvIHRoaXMgYWZ0ZXIgbW92aW5nIHRoZSBjZGNrbC9waHkgaW5p dCBjb2RlIHRvIHRoZSBtb2Rlc2V0L3Bvd2VyCndlbGwgZW5hYmxlIHRpbWUuCgo+ID4gKyNkZWZp bmUgX1BPUlRfQ0wxQ01fRFc5X0EJCTB4MTYyMDI0Cj4gPiArI2RlZmluZSBfUE9SVF9DTDFDTV9E VzlfQkMJCTB4NkMwMjQKPiA+ICsjZGVmaW5lICAgSVJFRjBSQ19PRkZTRVRfU0hJRlQJCTgKPiA+ ICsjZGVmaW5lICAgSVJFRjBSQ19PRkZTRVRfTUFTSwkJKDB4RkYgPDwgSVJFRjBSQ19PRkZTRVRf U0hJRlQpCj4gPiArI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9EVzkocGh5KQkJQlhUX1BIWShwaHks IF9QT1JUX0NMMUNNX0RXOV9BLAlcCj4gPiArCQkJCQkJICAgICBfUE9SVF9DTDFDTV9EVzlfQkMp Cj4gPiArCj4gPiArI2RlZmluZSBfUE9SVF9DTDFDTV9EVzEwX0EJCTB4MTYyMDI4Cj4gPiArI2Rl ZmluZSBfUE9SVF9DTDFDTV9EVzEwX0JDCQkweDZDMDI4Cj4gPiArI2RlZmluZSAgIElSRUYxUkNf T0ZGU0VUX1NISUZUCQk4Cj4gPiArI2RlZmluZSAgIElSRUYxUkNfT0ZGU0VUX01BU0sJCSgweEZG IDw8IElSRUYxUkNfT0ZGU0VUX1NISUZUKQo+ID4gKyNkZWZpbmUgQlhUX1BPUlRfQ0wxQ01fRFcx MChwaHkpCUJYVF9QSFkocGh5LCBfUE9SVF9DTDFDTV9EVzEwX0EsIFwKPiA+ICsJCQkJCQkgICAg IF9QT1JUX0NMMUNNX0RXMTBfQkMpCj4gPiArCj4gPiArI2RlZmluZSBfUE9SVF9DTDFDTV9EVzI4 X0EJCTB4MTYyMDcwCj4gPiArI2RlZmluZSBfUE9SVF9DTDFDTV9EVzI4X0JDCQkweDZDMDcwCj4g PiArI2RlZmluZSAgIE9DTDFfUE9XRVJfRE9XTl9FTgkJKDEgPDwgMjMpCj4gPiArI2RlZmluZSAg IERXMjhfT0xET19EWU5fUFdSX0RPV05fRU4JKDEgPDwgMjIpCj4gPiArI2RlZmluZSAgIFNVU19D TEtfQ09ORklHCQkweDMKPiA+ICsjZGVmaW5lIEJYVF9QT1JUX0NMMUNNX0RXMjgocGh5KQlCWFRf UEhZKHBoeSwgX1BPUlRfQ0wxQ01fRFcyOF9BLCBcCj4gPiArCQkJCQkJICAgICBfUE9SVF9DTDFD TV9EVzI4X0JDKQo+ID4gKwo+ID4gKyNkZWZpbmUgX1BPUlRfQ0wxQ01fRFczMF9BCQkweDE2MjA3 OAo+ID4gKyNkZWZpbmUgX1BPUlRfQ0wxQ01fRFczMF9CQwkJMHg2QzA3OAo+ID4gKyNkZWZpbmUg ICBPQ0wyX0xET0ZVU0VfUFdSX0RJUwkJKDEgPDwgNikKPiA+ICsjZGVmaW5lIEJYVF9QT1JUX0NM MUNNX0RXMzAocGh5KQlCWFRfUEhZKHBoeSwgX1BPUlRfQ0wxQ01fRFczMF9BLCBcCj4gPiArCQkJ CQkJICAgICBfUE9SVF9DTDFDTV9EVzMwX0JDKQo+ID4gKwo+ID4gKy8qIERlZmluZWQgZm9yIFBI WV9CQyBvbmx5ICovCj4gPiArI2RlZmluZSBCWFRfUE9SVF9DTDJDTV9EVzZfQkMJCTB4NkMzNTgK PiA+ICsjZGVmaW5lICAgRFc2X09MRE9fRFlOX1BXUl9ET1dOX0VOCSgxIDw8IDI4KQo+ID4gKwo+ ID4gKy8qIEJYVCBQSFkgUmVmIHJlZ2lzdGVycyAqLwo+ID4gKyNkZWZpbmUgX1BPUlRfUkVGX0RX M19BCQkJMHgxNjIxOEMKPiA+ICsjZGVmaW5lIF9QT1JUX1JFRl9EVzNfQkMJCTB4NkMxOEMKPiA+ ICsjZGVmaW5lICAgR1JDX0RPTkUJCQkoMSA8PCAyMikKPiA+ICsjZGVmaW5lIEJYVF9QT1JUX1JF Rl9EVzMocGh5KQkJQlhUX1BIWShwaHksIF9QT1JUX1JFRl9EVzNfQSwJXAo+ID4gKwkJCQkJCSAg ICAgX1BPUlRfUkVGX0RXM19CQykKPiA+ICsKPiA+ICsjZGVmaW5lIF9QT1JUX1JFRl9EVzZfQQkJ CTB4MTYyMTk4Cj4gPiArI2RlZmluZSBfUE9SVF9SRUZfRFc2X0JDCQkweDZDMTk4Cj4gPiArLyoK PiA+ICsgKiBGSVhNRTogQlNwZWMgZGlzYWdyZWVzIG9uIHRoZSBmb2xsb3dpbmcgdHdvIGZpZWxk cywgY2hlY2sgdGhlbSB3aXRoCj4gPiArICogSFcvZG9jdW1lbnRhdGlvbiBwZW9wbGUuCj4gPiAr ICovCj4gCj4gQ0hWIGNvbmZpZ2RiIGFsc28gZGlzYWdyZWVzLgoKT2ssIHRoYW5rcy4gQmVmb3Jl IGZpeGluZyB0aGlzLCBJIHdhbnQgdG8gd2FpdCBmb3IgdGhlIEhXIHRvIHRlc3QKdGhpbmdzLgoK PiA+ICsjZGVmaW5lICAgR1JDX0NPREVfU0hJRlQJCTIzCj4gPiArI2RlZmluZSAgIEdSQ19DT0RF X01BU0sJCQkoMHgxRkYgPDwgR1JDX0NPREVfU0hJRlQpCj4gPiArI2RlZmluZSAgIEdSQ19DT0RF X0ZBU1RfU0hJRlQJCTE2Cj4gPiArI2RlZmluZSAgIEdSQ19DT0RFX0ZBU1RfTUFTSwkJKDB4N0Yg PDwgR1JDX0NPREVfRkFTVF9TSElGVCkKPiA+ICsjZGVmaW5lICAgR1JDX0NPREVfU0xPV19TSElG VAkJOAo+ID4gKyNkZWZpbmUgICBHUkNfQ09ERV9TTE9XX01BU0sJCSgweEZGIDw8IEdSQ19DT0RF X1NMT1dfU0hJRlQpCj4gPiArI2RlZmluZSAgIEdSQ19DT0RFX05PTV9NQVNLCQkweEZGCj4gPiAr I2RlZmluZSBCWFRfUE9SVF9SRUZfRFc2KHBoeSkJCUJYVF9QSFkocGh5LCBfUE9SVF9SRUZfRFc2 X0EsCVwKPiA+ICsJCQkJCQkgICAgIF9QT1JUX1JFRl9EVzZfQkMpCj4gPiArCj4gPiArI2RlZmlu ZSBfUE9SVF9SRUZfRFc4X0EJCQkweDE2MjFBMAo+ID4gKyNkZWZpbmUgX1BPUlRfUkVGX0RXOF9C QwkJMHg2QzFBMAo+ID4gKyNkZWZpbmUgICBHUkNfRElTCQkJKDEgPDwgMTUpCj4gPiArI2RlZmlu ZSAgIEdSQ19SRFlfT1ZSRAkJCSgxIDw8IDEpCj4gPiArI2RlZmluZSBCWFRfUE9SVF9SRUZfRFc4 KHBoeSkJCUJYVF9QSFkocGh5LCBfUE9SVF9SRUZfRFc4X0EsCVwKPiA+ICsJCQkJCQkgICAgIF9Q T1JUX1JFRl9EVzhfQkMpCj4gPiArCj4gPiArLyogQlhUIFBIWSBUWCByZWdpc3RlcnMgKi8KPiA+ ICsjZGVmaW5lIEJYVF9MQU5FX09GRlNFVChsYW5lKSAgICAgICAgICAgKCgobGFuZSkgPj4gMSkg KiAweDIwMCArCVwKPiA+ICsJCQkJCSAoKGxhbmUpICYgMSkgKiAweDgwKQo+ID4gKwo+ID4gKyNk ZWZpbmUgX1BPUlRfVFhfRFcxNF9MTjBfQQkJMHgxNjI1MzgKPiA+ICsjZGVmaW5lIF9QT1JUX1RY X0RXMTRfTE4wX0IJCTB4NkM1MzgKPiA+ICsjZGVmaW5lIF9QT1JUX1RYX0RXMTRfTE4wX0MJCTB4 NkM5MzgKPiA+ICsjZGVmaW5lICAgTEFURU5DWV9PUFRJTV9TSElGVAkJMzAKPiA+ICsjZGVmaW5l ICAgTEFURU5DWV9PUFRJTQkJCSgxIDw8IExBVEVOQ1lfT1BUSU1fU0hJRlQpCj4gPiArI2RlZmlu ZSBCWFRfUE9SVF9UWF9EVzE0X0xOKHBvcnQsIGxhbmUpCShfUE9SVDMocG9ydCwgX1BPUlRfVFhf RFcxNF9MTjBfQSwgICBcCj4gPiArCQkJCQkJICAgICAgX1BPUlRfVFhfRFcxNF9MTjBfQiwgICBc Cj4gPiArCQkJCQkJICAgICAgX1BPUlRfVFhfRFcxNF9MTjBfQykgKyBcCj4gPiArCQkJCQkgQlhU X0xBTkVfT0ZGU0VUKGxhbmUpKQo+ID4gKwo+ID4gIC8qCj4gPiAgICogRmVuY2UgcmVnaXN0ZXJz Cj4gPiAgICovCj4gPiBAQCAtNTMyNiw2ICs1NDMwLDkgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7Cj4gPiAgI2RlZmluZSAgRElTUF9GQkNfV01fRElTCQkoMTw8MTUpCj4gPiAgI2RlZmlu ZSBESVNQX0FSQl9DVEwyCTB4NDUwMDQKPiA+ICAjZGVmaW5lICBESVNQX0RBVEFfUEFSVElUSU9O XzVfNgkoMTw8NikKPiA+ICsjZGVmaW5lIERCVUZfQ1RMCTB4NDUwMDgKPiA+ICsjZGVmaW5lICBE QlVGX1BPV0VSX1JFUVVFU1QJCSgxPDwzMSkKPiA+ICsjZGVmaW5lICBEQlVGX1BPV0VSX1NUQVRF CQkoMTw8MzApCj4gPiAgI2RlZmluZSBHRU43X01TR19DVEwJMHg0NTAxMAo+ID4gICNkZWZpbmUg IFdBSVRfRk9SX1BDSF9SRVNFVF9BQ0sJCSgxPDwxKQo+ID4gICNkZWZpbmUgIFdBSVRfRk9SX1BD SF9GTFJfQUNLCQkoMTw8MCkKPiA8c25pcD4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4g PiBpbmRleCBhMjAzZDlkLi43ODk2ODJkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gPiBAQCAtMTk1Nyw2ICsxOTU3LDI5NCBAQCBzdGF0aWMgdm9pZCBza2xfc2hhcmVkX2Rw bGxzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAl9Cj4gPiAg fQo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIGJ4dF9pbml0X3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGVudW0gYnh0X3BoeSBwaHkpCj4gPiArewo+ID4gKwllbnVtIHBvcnQg cG9ydDsKPiA+ICsJdWludDMyX3QgdmFsOwo+ID4gKwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoQlhU X1BfQ1JfR1RfRElTUF9QV1JPTl8wXzJfMF9HVFRNTUFEUik7Cj4gPiArCXZhbCB8PSBHVF9ESVNQ TEFZX1BPV0VSX09OKHBoeSk7Cj4gPiArCUk5MTVfV1JJVEUoQlhUX1BfQ1JfR1RfRElTUF9QV1JP Tl8wXzJfMF9HVFRNTUFEUiwgdmFsKTsKPiA+ICsKPiA+ICsJLyogQ29uc2lkZXJpbmcgMTBtcyB0 aW1lb3V0IHVudGlsIEJTcGVjIGlzIHVwZGF0ZWQgKi8KPiA+ICsJaWYgKHdhaXRfZm9yKEk5MTVf UkVBRChCWFRfUE9SVF9DTDFDTV9EVzAocGh5KSkgJiBQSFlfUE9XRVJfR09PRCwgMTApKQo+ID4g KwkJRFJNX0VSUk9SKCJ0aW1lb3V0IGR1cmluZyBQSFkjJWQgcG93ZXIgb25cbiIsIHBoeSk7Cj4g PiArCj4gPiArCS8qIFByb2dyYW0gbGF0ZW5jeSBvcHRpbSBzZXR0aW5nICovCj4gPiArCWZvciAo cG9ydCA9ICAocGh5ID09IEJYVF9QSFlfQSA/IFBPUlRfQSA6IFBPUlRfQik7Cj4gPiArCSAgICAg cG9ydCA8PSAocGh5ID09IEJYVF9QSFlfQSA/IFBPUlRfQSA6IFBPUlRfQyk7IHBvcnQrKykgewo+ ID4gKwkJaW50IGxhbmU7Cj4gPiArCj4gPiArCQlmb3IgKGxhbmUgPSAwOyBsYW5lIDwgNDsgbGFu ZSsrKSB7Cj4gPiArCQkJdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1RYX0RXMTRfTE4ocG9ydCwg bGFuZSkpOwo+ID4gKwkJCXZhbCAmPSB+TEFURU5DWV9PUFRJTTsKPiA+ICsJCQlpZiAobGFuZSA9 PSAxKQo+IAo+IFNob3VsZCBiZSAhPSAxCgpUaGFua3MgZm9yIGNhdGNoaW5nIGl0LCB0aGlzIGlz IGEgZmFsbC1vdXQgZnJvbSBteSByZWZhY3RvcmluZy4gV2lsbCBmaXgKaXQuCgo+ID4gKwkJCQl2 YWwgfD0gTEFURU5DWV9PUFRJTTsKPiA+ICsKPiA+ICsJCQlJOTE1X1dSSVRFKEJYVF9QT1JUX1RY X0RXMTRfTE4ocG9ydCwgbGFuZSksIHZhbCk7Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsKPiA+ICsJ LyogUHJvZ3JhbSBQTEwgUmNvbXAgY29kZSBvZmZzZXQgKi8KPiA+ICsJdmFsID0gSTkxNV9SRUFE KEJYVF9QT1JUX0NMMUNNX0RXOShwaHkpKTsKPiA+ICsJdmFsICY9IH5JUkVGMFJDX09GRlNFVF9N QVNLOwo+ID4gKwl2YWwgfD0gMHhFNCA8PCBJUkVGMFJDX09GRlNFVF9TSElGVDsKPiA+ICsJSTkx NV9XUklURShCWFRfUE9SVF9DTDFDTV9EVzkocGh5KSwgdmFsKTsKPiA+ICsKPiA+ICsJdmFsID0g STkxNV9SRUFEKEJYVF9QT1JUX0NMMUNNX0RXMTAocGh5KSk7Cj4gPiArCXZhbCAmPSB+SVJFRjFS Q19PRkZTRVRfTUFTSzsKPiA+ICsJdmFsIHw9IDB4RTQgPDwgSVJFRjFSQ19PRkZTRVRfU0hJRlQ7 Cj4gPiArCUk5MTVfV1JJVEUoQlhUX1BPUlRfQ0wxQ01fRFcxMChwaHkpLCB2YWwpOwo+ID4gKwo+ ID4gKwkvKiBQcm9ncmFtIHBvd2VyIGdhdGluZyAqLwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoQlhU X1BPUlRfQ0wxQ01fRFcyOChwaHkpKTsKPiA+ICsJdmFsIHw9IE9DTDFfUE9XRVJfRE9XTl9FTiB8 IERXMjhfT0xET19EWU5fUFdSX0RPV05fRU4gfAo+ID4gKwkJU1VTX0NMS19DT05GSUc7Cj4gPiAr CUk5MTVfV1JJVEUoQlhUX1BPUlRfQ0wxQ01fRFcyOChwaHkpLCB2YWwpOwo+ID4gKwo+ID4gKwlp ZiAocGh5ID09IEJYVF9QSFlfQkMpIHsKPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9D TDJDTV9EVzZfQkMpOwo+ID4gKwkJdmFsIHw9IERXNl9PTERPX0RZTl9QV1JfRE9XTl9FTjsKPiA+ ICsJCUk5MTVfV1JJVEUoQlhUX1BPUlRfQ0wyQ01fRFc2X0JDLCB2YWwpOwo+ID4gKwl9Cj4gPiAr Cj4gPiArCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9DTDFDTV9EVzMwKHBoeSkpOwo+ID4gKwl2 YWwgJj0gfk9DTDJfTERPRlVTRV9QV1JfRElTOwo+ID4gKwkvKgo+ID4gKwkgKiBPbiBQSFlfQSBk aXNhYmxlIHBvd2VyIG9uIHRoZSBzZWNvbmQgY2hhbm5lbCwgc2luY2Ugbm8gcG9ydCBpcwo+ID4g KwkgKiBjb25uZWN0ZWQgdGhlcmUuIE9uIFBIWV9CQyBib3RoIGNoYW5uZWxzIGhhdmUgYSBwb3J0 LCBzbyBsZWF2ZSBpdAo+ID4gKwkgKiBlbmFibGVkLgo+ID4gKwkgKiBOb3RlIHRoYXQgcG9ydCBD IGlzIG9ubHkgY29ubmVjdGVkIG9uIEJYVC1QLCBzbyBvbiBCWFQwLzEgd2Ugc2hvdWxkCj4gPiAr CSAqIHBvd2VyIGRvd24gdGhlIHNlY29uZCBjaGFubmVsIG9uIFBIWV9CQyBhcyB3ZWxsLgo+ID4g KwkgKi8KPiA+ICsJaWYgKHBoeSA9PSBCWFRfUEhZX0EpCj4gPiArCQl2YWwgfD0gT0NMMl9MRE9G VVNFX1BXUl9ESVM7Cj4gPiArCUk5MTVfV1JJVEUoQlhUX1BPUlRfQ0wxQ01fRFczMChwaHkpLCB2 YWwpOwo+ID4gKwo+ID4gKwlpZiAocGh5ID09IEJYVF9QSFlfQkMpIHsKPiA+ICsJCXVpbnQzMl90 IGdyY19jb2RlOwo+ID4gKwkJLyoKPiA+ICsJCSAqIFBIWV9CQyBpc24ndCBjb25uZWN0ZWQgdG8g YW4gUkNPTVAgcmVzaXN0b3Igc28gY29weSBvdmVyCj4gPiArCQkgKiB0aGUgY29ycmVzcG9uZGlu ZyBjYWxpYnJhdGVkIHZhbHVlIGZyb20gUEhZX0EsIGFuZCBkaXNhYmxlCj4gPiArCQkgKiB0aGUg YXV0b21hdGljIGNhbGlicmF0aW9uIG9uIFBIWV9CQy4KPiA+ICsJCSAqLwo+ID4gKwkJaWYgKHdh aXRfZm9yKEk5MTVfUkVBRChCWFRfUE9SVF9SRUZfRFczKEJYVF9QSFlfQSkpICYgR1JDX0RPTkUs Cj4gPiArCQkJICAgICAxMCkpCj4gPiArCQkJRFJNX0VSUk9SKCJ0aW1lb3V0IHdhaXRpbmcgZm9y IFBIWSMwIEdSQ1xuIik7Cj4gPiArCj4gPiArCQl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUkVG X0RXNihCWFRfUEhZX0EpKTsKPiA+ICsJCXZhbCA9ICh2YWwgJiBHUkNfQ09ERV9NQVNLKSA+PiBH UkNfQ09ERV9TSElGVDsKPiA+ICsJCWdyY19jb2RlID0gdmFsIDw8IEdSQ19DT0RFX0ZBU1RfU0hJ RlQgfAo+ID4gKwkJCSAgIHZhbCA8PCBHUkNfQ09ERV9TTE9XX1NISUZUIHwKPiA+ICsJCQkgICB2 YWw7Cj4gPiArCQlJOTE1X1dSSVRFKEJYVF9QT1JUX1JFRl9EVzYoQlhUX1BIWV9CQyksIGdyY19j b2RlKTsKPiA+ICsKPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9SRUZfRFc4KEJYVF9Q SFlfQkMpKTsKPiA+ICsJCXZhbCB8PSBHUkNfRElTIHwgR1JDX1JEWV9PVlJEOwo+ID4gKwkJSTkx NV9XUklURShCWFRfUE9SVF9SRUZfRFc4KEJYVF9QSFlfQkMpLCB2YWwpOwo+ID4gKwl9Cj4gPiAr Cj4gPiArCS8qIFJlbGVhc2UgY29tbW9uX3Jlc2V0ICovCj4gPiArCXZhbCA9IEk5MTVfUkVBRChC WFRfUEhZX0NUTF9GQU1JTFkocGh5KSk7Cj4gPiArCXZhbCB8PSBDT01NT05fUkVTRVRfRElTOwo+ ID4gKwlJOTE1X1dSSVRFKEJYVF9QSFlfQ1RMX0ZBTUlMWShwaHkpLCB2YWwpOwo+ID4gK30KPiAK PiBJIHN1cHBvc2Ugd2UnbGwgd2FudCB0byBtb2RlbCB0aGlzIHRoaW5nIGFzIGEgcG93ZXIgd2Vs bCBsaWtlIG9uIENIVgo+IGV2ZW50dWFsbHksIGJ1dCBJIGd1ZXNzIHdlIGNhbiBzdGFydCBvZmYg d2l0aCBpbml0aWFsaXppbmcgaXQgb25jZS4KClllcCwgc291bmRzIGdvb2QsIGJ1dCBJJ2QgYWxz byBwcmVmZXIgdG8gZG8gdGhpcyBhcyBhIGZvbGxvdy11cC4KCj4gPiArCj4gPiArdm9pZCBieHRf ZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiArewo+ID4gKwkvKiBFbmFi bGUgUEhZX0EgZmlyc3Qgc2luY2UgaXQgcHJvdmlkZXMgUmNvbXAgZm9yIFBIWV9CQyAqLwo+ID4g KwlieHRfaW5pdF9waHkoZGV2LT5kZXZfcHJpdmF0ZSwgQlhUX1BIWV9BKTsKPiA+ICsJYnh0X2lu aXRfcGh5KGRldi0+ZGV2X3ByaXZhdGUsIEJYVF9QSFlfQkMpOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgdm9pZCBieHRfZGRpX3BoeV91bmluaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gPiArCXVpbnQzMl90IHRlbXA7Cj4gPiArCj4gPiArCXRlbXAgPSBJOTE1X1JFQUQo QlhUX1BIWV9DVExfRkFNSUxZKEJYVF9QSFlfQSkpOwo+ID4gKwlJOTE1X1dSSVRFKEJYVF9QSFlf Q1RMX0ZBTUlMWShCWFRfUEhZX0EpLCB0ZW1wICYgfkNPTU1PTl9SRVNFVF9ESVMpOwo+ID4gKwo+ ID4gKwl0ZW1wID0gSTkxNV9SRUFEKEJYVF9QSFlfQ1RMX0ZBTUlMWShCWFRfUEhZX0JDKSk7Cj4g PiArCUk5MTVfV1JJVEUoQlhUX1BIWV9DVExfRkFNSUxZKEJYVF9QSFlfQkMpLCB0ZW1wICYgfkNP TU1PTl9SRVNFVF9ESVMpOwo+ID4gKwo+ID4gKwlJOTE1X1dSSVRFKEJYVF9QX0NSX0dUX0RJU1Bf UFdST05fMF8yXzBfR1RUTU1BRFIsIDApOwo+ID4gK30KPiAKPiBUaGlzIHNob3VsZCByZWFsbHkg YmUgcGVyLXBoeSB0byBhdm9pZCBjb25mdXNpb24gd2hlbiBjb21wYXJpbmcgd2l0aCB0aGUKPiBp bml0IGZ1bmN0aW9uLgoKT2ssIHdpbGwgcmV3cml0ZSBpdC4KCj4gPiArCj4gPHNuaXA+Cj4gPiAr Cj4gPiArdm9pZCBieHRfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gK3sK PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiA+ICsKPiA+ICsJLyogTkRFX1JTVFdSTl9PUFQgUlNUIFBDSCBIYW5kc2hha2UgRW4gbXVz dCBhbHdheXMgYmUgMGIgb24gQlhUCj4gPiArCSAqIG9yIGVsc2UgdGhlIHJlc2V0IHdpbGwgaGFu ZyBiZWNhdXNlIHRoZXJlIGlzIG5vIFBDSCB0byByZXNwb25kLgo+ID4gKwkgKiBNb3ZlIHRoZSBo YW5kc2hha2UgcHJvZ3JhbW1pbmcgdG8gaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuCj4gPiArCSAq IFByZXZpb3VzbHkgd2FzIGxlZnQgdXAgdG8gQklPUy4KPiA+ICsJICovCj4gPiArCXUzMiB0ZW1w ID0gSTkxNV9SRUFEKEhTV19OREVfUlNUV1JOX09QVCk7Cj4gPiArCj4gPiArCXRlbXAgJj0gflJF U0VUX1BDSF9IQU5EU0hBS0VfRU5BQkxFOwo+ID4gKwlJOTE1X1dSSVRFKEhTV19OREVfUlNUV1JO X09QVCwgdGVtcCk7Cj4gPiArCj4gPiArCS8qIEVuYWJsZSBQRzEgZm9yIGNkY2xrICovCj4gPiAr CWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fUExMUyk7Cj4g PiArCj4gPiArCS8qIGNoZWNrIGlmIGNkIGNsb2NrIGlzIGVuYWJsZWQgKi8KPiA+ICsJaWYgKEk5 MTVfUkVBRChCWFRfREVfUExMX0VOQUJMRSkgJiBCWFRfREVfUExMX1BMTF9FTkFCTEUpIHsKPiA+ ICsJCURSTV9ERUJVR19LTVMoIkRpc3BsYXkgYWxyZWFkeSBpbml0aWFsaXplZFxuIik7Cj4gPiAr CQlyZXR1cm47Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyogRklYTUU6LSBUaGUgaW5pdGlhbCBDRENM SyBuZWVkcyB0byBiZSByZWFkIGZyb20gVkJULgo+ID4gKwkgKiBOZWVkIHRvIG1ha2UgdGhpcyBj aGFuZ2UgYWZ0ZXIgVkJUIGhhcyBjaGFuZ2VzIGZvciBCWFQuCj4gPiArCSAqLwo+ID4gKwlieHRf c2VsZWN0X2NkY2xrX2ZyZXEoZGV2LCA2MjQwMDApOwo+ID4gKwo+ID4gKwlJOTE1X1dSSVRFKERC VUZfQ1RMLCBJOTE1X1JFQUQoREJVRl9DVEwpIHwgREJVRl9QT1dFUl9SRVFVRVNUKTsKPiA+ICsJ dWRlbGF5KDEwKTsKPiA+ICsKPiA+ICsJaWYgKCEoSTkxNV9SRUFEKERCVUZfQ1RMKSAmIERCVUZf UE9XRVJfU1RBVEUpKQo+ID4gKwkJRFJNX0VSUk9SKCJEQnVmIHBvd2VyIGVuYWJsZSB0aW1lb3V0 IVxuIik7Cj4gPiArfQo+IAo+IFRoaXMgY29kZSBzZWVtcyBsaWtlIHBvd2VyIHdlbGwgdGVycml0 b3J5IGFnYWluLiBKdXN0IHN0dWZmaW5nIGl0IGludG8KPiBQRzEgd291bGQgc2VlbSBsaWtlIGEg Z29vZCBlbm91Z2ggc29sdXRpb24ganVkZ2luZyBieSB0aGUgZmFjdCB0aGF0IHdlCj4gaG9sZCB0 aGUgUEcxIHJlZmVyZW5jZSBhcyBsb25nIGFzIHdlIGhhdmUgdGhlIERCVUYgcG93ZXIgcmVxdWVz dCBlbmFibGVkLgo+IAo+IE9yIGFyZSB0aGVyZSBhY3R1YWwgdXNlcyBmb3IgaGF2aW5nIFBHMSBl bmFibGVkIHcvbyB0aGlzIHRoaW5nPwoKSSBkb24ndCB0aGluayBzbywgYnNwZWMgcmVxdWlyZXMg dGhpcyBwb3dlciByZXF1ZXN0IGxpbmUgdG8gYmUgYXNzZXJ0ZWQKZm9yIGFsbCBkaXNwbGF5IGlu dGVybmFsIGZ1bmN0aW9uYWxpdHkuIFNvIEkgYWdyZWUgbW92aW5nIGl0IHRvIHRoZQpwb3dlciB3 ZWxsIGNvZGUgaXMgYSBnb29kIHBsYW4gKGFzIGEgZm9sbG93LXVwKS4KCj4gPiArCj4gPiArdm9p ZCBieHRfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiArewo+ID4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4g Kwo+ID4gKwlieHRfZGRpX3BoeV91bmluaXQoZGV2KTsKPiA+ICsKPiA+ICsJSTkxNV9XUklURShE QlVGX0NUTCwgSTkxNV9SRUFEKERCVUZfQ1RMKSAmIH5EQlVGX1BPV0VSX1JFUVVFU1QpOwo+ID4g Kwl1ZGVsYXkoMTApOwo+ID4gKwo+ID4gKwlpZiAoSTkxNV9SRUFEKERCVUZfQ1RMKSAmIERCVUZf UE9XRVJfU1RBVEUpCj4gPiArCQlEUk1fRVJST1IoIkRCdWYgcG93ZXIgZGlzYWJsZSB0aW1lb3V0 IVxuIik7Cj4gPiArCj4gPiArCWJ4dF9zZWxlY3RfY2RjbGtfZnJlcShkZXYsIDApOwo+ID4gKwo+ ID4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1BMTFMp Owo+ID4gK30KPiA+ICsKPiA+ICB2b2lkIGludGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IEBAIC0xOTczLDYgKzIyNjEsOSBAQCB2b2lkIGludGVs X2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAlpZiAoSVNfU0tZTEFL RShkZXYpKSB7Cj4gPiAgCQlpZiAoIShJOTE1X1JFQUQoTENQTEwxX0NUTCkgJiBMQ1BMTF9QTExf RU5BQkxFKSkKPiA+ICAJCQlEUk1fRVJST1IoIkxDUExMMSBpcyBkaXNhYmxlZFxuIik7Cj4gPiAr CX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gPiArCQlieHRfaW5pdF9jZGNsayhkZXYp Owo+ID4gKwkJYnh0X2RkaV9waHlfaW5pdChkZXYpOwo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJLyoK PiA+ICAJCSAqIFRoZSBMQ1BMTCByZWdpc3RlciBzaG91bGQgYmUgdHVybmVkIG9uIGJ5IHRoZSBC SU9TLiBGb3Igbm93CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK