From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [BXT MIPI PATCH v5 11/14] drm/i915/bxt: Modify BXT BLC according to VBT changes Date: Fri, 2 Oct 2015 14:58:36 +0200 Message-ID: <20151002125836.GK3383@phenom.ffwll.local> References: <87fv1yk7op.fsf@intel.com> <1443632697-19085-1-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E4DB6EDE5 for ; Fri, 2 Oct 2015 05:55:42 -0700 (PDT) Received: by wicge5 with SMTP id ge5so32024846wic.0 for ; Fri, 02 Oct 2015 05:55:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1443632697-19085-1-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Uma Shankar Cc: shobhit.kumar@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMzAsIDIwMTUgYXQgMTA6MzQ6NTdQTSArMDUzMCwgVW1hIFNoYW5rYXIgd3Jv dGU6Cj4gRnJvbTogU3VuaWwgS2FtYXRoIDxzdW5pbC5rYW1hdGhAaW50ZWwuY29tPgo+IAo+IExh dGVzdCBWQlQgbWVudGlvbnMgd2hpY2ggc2V0IG9mIHJlZ2lzdGVycyB3aWxsIGJlIHVzZWQgZm9y IEJMQywKPiBhcyBjb250cm9sbGVyIG51bWJlciBmaWVsZC4gTWFraW5nIHVzZSBvZiB0aGlzIGZp ZWxkIGluIEJYVAo+IEJMQyBpbXBsZW1lbnRhdGlvbi4gQWxzbywgdGhlIHJlZ2lzdGVycyBhcmUg dXNlZCBpbiBjYXNlIGNvbnRyb2wKPiBwaW4gaW5kaWNhdGVzIGRpc3BsYXkgRERJLiBBZGRpbmcg YSBjaGVjayBmb3IgdGhpcy4KPiBBY2NvcmRpbmcgdG8gQnNwZWMsIEJMQ19QV01fKl8yIHVzZXMg dGhlIGRpc3BsYXkgdXRpbGl0eSBwaW4gZm9yIG91dHB1dC4KPiBUbyB1c2UgYmFja2xpZ2h0IDIs IGVuYWJsZSB0aGUgdXRpbGl0eSBwaW4gd2l0aCBtb2RlID0gUFdNCj4gICAgdjI6IEphbmkncyBy ZXZpZXcgY29tbWVudHMKPiAgICBhZGRyZXNzZWQKPiAgICAgICAgLSBBZGQgYSBwcmVmaXggXyB0 byBCWFQgQkxDIHJlZ2lzdGVycyBkZWZpbml0aW9ucy4KPiAgICAgICAgLSBBZGQgImJ4dCBvbmx5 IiBjb21tZW50IGZvciB1OCBjb250cm9sbGVyCj4gICAgICAgIC0gUmVtb3ZlIGNvbnRyb2xfcGlu IGNoZWNrIGZvciBEREkgY29udHJvbGxlcgo+ICAgICAgICAtIENoZWNrIGZvciB2YWxpZCBjb250 cm9sbGVyIHZhbHVlcwo+ICAgICAgICAtIFNldCBwaXBlIGJpdHMgaW4gVVRJTF9QSU5fQ1RMCj4g ICAgICAgIC0gRW5hYmxlL0Rpc2FibGUgVVRJTF9QSU5fQ1RMIGluIGVuYWJsZS9kaXNhYmxlX2Jh Y2tsaWdodCgpCj4gICAgICAgIC0gSWYgQkxDIDIgaXMgdXNlZCwgcmVhZCBhY3RpdmVfbG93X3B3 bSBmcm9tIFVUSUxfUElOIHBvbGFyaXR5Cj4gICAgU2F0aGVlc2gncyByZXZpZXcgY29tbWVudCBh ZGRyZXNzZWQKPiAgICAgICAgLSBJZiBVVElMIFBJTiBpcyBhbHJlYWR5IGVuYWJsZWQsIEJJT1Mg d291bGQgaGF2ZSBwcm9ncmFtbWVkIGl0LiBObwo+ICAgICAgICBuZWVkIHRvIGRpc2FibGUgYW5k IGVuYWJsZSBhZ2Fpbi4KPiAgICB2MzogSmFuaSdzIHJldmlldyBjb21tZW50cwo+ICAgICAgICAt IGFkZCBVVElMX1BJTl9QSVBFX01BU0sgYW5kIFVUSUxfUElOX01PREVfTUFTSwo+ICAgICAgICAt IERpc2FibGUgVVRJTF9QSU4gaWYgY29udHJvbGxlciAxIGlzIHVzZWQKPiAgICAgICAgLSBNYXNr IG91dCBVVElMX1BJTl9QSVBFX01BU0sgYW5kIFVUSUxfUElOX01PREVfTUFTSyBiZWZvcmUgZW5h YmxpbmcKPiAgICAgICAgVVRJTF9QSU4KPiAgICAgICAgLSBjaGVjayB2YWxpZCBjb250cm9sbGVy IHZhbHVlIGluIGludGVsX2Jpb3MuYwo+ICAgICAgICAtIGFkZCBiYWNrbGlnaHQudXRpbF9waW5f YWN0aXZlX2xvdwo+ICAgICAgICAtIGRpc2FibGUgdXRpbCBwaW4gYmVmb3JlIGVuYWJsaW5nCj4g ICAgdjQ6IENoYW5nZSBmb3IgQlhULVBPIGJyYW5jaDoKPiAgICBTdHViYmVkIHVud2FudGVkIGRl ZmluaXRpb24gd2hpY2ggd2FzIGV4aXN0aW5nIGJlZm9yZQo+ICAgIGJlY2F1c2Ugb2YgREM2IHBh dGNoLgo+ICAgIFVUSUxfUElOX01PREVfUFdNICAgICAoMHgxYiA8PCAyNCkKPiAKPiB2MjogRml4 ZWQgSmFuaSdzIHJldmlldyBjb21tZW50Lgo+IAo+IHYzOiBTcGxpdCB0aGUgYmFja2lnaHQgUFdN IGZyZXF1ZW5jeSBwcm9ncmFtbWluZyBpbnRvIHNlcGFyYXRlIHBhdGNoLAo+ICAgICBpbiBjYXNl cyBCSU9TIGRvZXNuJ3QgaW5pdGlhbGl6ZXMgaXQuCj4gCj4gdjQ6IFN0YXJ0aW5nIGFmcmVzaCBh bmQgbm90IG1vZGlmeWluZyBleGlzdGluZyBzdGF0ZSBmb3IgYmFja2xpZ2h0LCBhcwo+ICAgICBw ZXIgSmFuaSdzIHJlY29tbWVuZGF0aW9uLgo+IAo+IHY1OiBGaXhlZCBKYW5pJ3MgcmV2aWV3IGNv bW1lbnQgd3J0IHV0aWwgcGluIGVuYWJsZQo+IAo+IFNpZ25lZC1vZmYtYnk6IFZhbmRhbmEgS2Fu bmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogU3VuaWwgS2Ft YXRoIDxzdW5pbC5rYW1hdGhAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2Fy IDx1bWEuc2hhbmthckBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgfCAgIDI4ICsrKysrKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgIHwgICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVs LmMgfCAgIDgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ICAzIGZpbGVz IGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAo+IGluZGV4IDg4YTE2ZTIuLjUxOWY3NjQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiBAQCAtMzUxMiwxNyArMzUxMiwyOSBAQCBlbnVtIHNrbF9kaXNwX3Bvd2Vy X3dlbGxzIHsKPiAgI2RlZmluZSBVVElMX1BJTl9DVEwJCTB4NDg0MDAKPiAgI2RlZmluZSAgIFVU SUxfUElOX0VOQUJMRQkoMSA8PCAzMSkKPiAgCj4gKyNkZWZpbmUgICBVVElMX1BJTl9QSVBFKHgp ICAgICAoKHgpIDw8IDI5KQo+ICsjZGVmaW5lICAgVVRJTF9QSU5fUElQRV9NQVNLICAgKDMgPDwg MjkpCj4gKyNkZWZpbmUgICBVVElMX1BJTl9NT0RFX1BXTSAgICAoMSA8PCAyNCkKPiArI2RlZmlu ZSAgIFVUSUxfUElOX01PREVfTUFTSyAgICgweGYgPDwgMjQpCj4gKyNkZWZpbmUgICBVVElMX1BJ Tl9QT0xBUklUWSAgICAoMSA8PCAyMikKPiArCj4gIC8qIEJYVCBiYWNrbGlnaHQgcmVnaXN0ZXIg ZGVmaW5pdGlvbi4gKi8KPiAtI2RlZmluZSBCWFRfQkxDX1BXTV9DVEwxCQkJMHhDODI1MAo+ICsj ZGVmaW5lIF9CWFRfQkxDX1BXTV9DVEwxCQkJMHhDODI1MAo+ICAjZGVmaW5lICAgQlhUX0JMQ19Q V01fRU5BQkxFCQkJKDEgPDwgMzEpCj4gICNkZWZpbmUgICBCWFRfQkxDX1BXTV9QT0xBUklUWQkJ CSgxIDw8IDI5KQo+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0ZSRVExCQkJMHhDODI1NAo+IC0jZGVm aW5lIEJYVF9CTENfUFdNX0RVVFkxCQkJMHhDODI1OAo+IC0KPiAtI2RlZmluZSBCWFRfQkxDX1BX TV9DVEwyCQkJMHhDODM1MAo+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0ZSRVEyCQkJMHhDODM1NAo+ IC0jZGVmaW5lIEJYVF9CTENfUFdNX0RVVFkyCQkJMHhDODM1OAo+IC0KPiArI2RlZmluZSBfQlhU X0JMQ19QV01fRlJFUTEJCQkweEM4MjU0Cj4gKyNkZWZpbmUgX0JYVF9CTENfUFdNX0RVVFkxCQkJ MHhDODI1OAo+ICsKPiArI2RlZmluZSBfQlhUX0JMQ19QV01fQ1RMMgkJCTB4QzgzNTAKPiArI2Rl ZmluZSBfQlhUX0JMQ19QV01fRlJFUTIJCQkweEM4MzU0Cj4gKyNkZWZpbmUgX0JYVF9CTENfUFdN X0RVVFkyCQkJMHhDODM1OAo+ICsKPiArI2RlZmluZSBCWFRfQkxDX1BXTV9DVEwoY29udHJvbGxl cikgICAgX1BJUEUoY29udHJvbGxlciwgXAo+ICsJCQkJCV9CWFRfQkxDX1BXTV9DVEwxLCBfQlhU X0JMQ19QV01fQ1RMMikKPiArI2RlZmluZSBCWFRfQkxDX1BXTV9GUkVRKGNvbnRyb2xsZXIpICAg X1BJUEUoY29udHJvbGxlciwgXAo+ICsJCQkJCV9CWFRfQkxDX1BXTV9GUkVRMSwgX0JYVF9CTENf UFdNX0ZSRVEyKQo+ICsjZGVmaW5lIEJYVF9CTENfUFdNX0RVVFkoY29udHJvbGxlcikgICBfUElQ RShjb250cm9sbGVyLCBcCj4gKwkJCQkJX0JYVF9CTENfUFdNX0RVVFkxLCBfQlhUX0JMQ19QV01f RFVUWTIpCj4gIAo+ICAjZGVmaW5lIFBDSF9HVENfQ1RMCQkweGU3MDAwCj4gICNkZWZpbmUgICBQ Q0hfR1RDX0VOQUJMRQkoMSA8PCAzMSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4 IDEwNTkyODMuLmQ4Y2EwNzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0x ODIsNyArMTgyLDkgQEAgc3RydWN0IGludGVsX3BhbmVsIHsKPiAgCQlib29sIGVuYWJsZWQ7Cj4g IAkJYm9vbCBjb21iaW5hdGlvbl9tb2RlOwkvKiBnZW4gMi80IG9ubHkgKi8KPiAgCQlib29sIGFj dGl2ZV9sb3dfcHdtOwo+ICsJCWJvb2wgdXRpbF9waW5fYWN0aXZlX2xvdzsJLyogYnh0KyAqLwo+ ICAJCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpkZXZpY2U7Cj4gKwkJdTggY29udHJvbGxlcjsJ CS8qIGJ4dCsgb25seSAqLwo+ICAJfSBiYWNrbGlnaHQ7Cj4gIAo+ICAJdm9pZCAoKmJhY2tsaWdo dF9wb3dlcikoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqLCBib29sIGVuYWJsZSk7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gaW5kZXggNTVhYWQyMy4uMGQyMTcxNSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+IEBAIC01MzksOSArNTM5LDEwIEBAIHN0YXRpYyB1 MzIgdmx2X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICBzdGF0aWMgdTMyIGJ4dF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFz ZS5kZXY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICAKPiAtCXJldHVybiBJOTE1X1JFQUQoQlhUX0JMQ19QV01fRFVUWTEpOwo+ICsJcmV0dXJu IEk5MTVfUkVBRChCWFRfQkxDX1BXTV9EVVRZKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikp Owo+ICB9Cj4gIAo+ICBzdGF0aWMgdTMyIGludGVsX3BhbmVsX2dldF9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IEBAIC02MjgsOCArNjI5LDkgQEAgc3RhdGlj IHZvaWQgYnh0X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LCB1MzIgbGV2ZWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5w YW5lbDsKPiAgCj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0RVVFkxLCBsZXZlbCk7Cj4gKwlJ OTE1X1dSSVRFKEJYVF9CTENfUFdNX0RVVFkocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwg bGV2ZWwpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IEBAIC03NjEsMTIgKzc2MywyMCBAQCBz dGF0aWMgdm9pZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5i YXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gLQl1MzIgdG1wOwo+ICsJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZj b25uZWN0b3ItPnBhbmVsOwo+ICsJdTMyIHRtcCwgdmFsOwo+ICAKPiAgCWludGVsX3BhbmVsX2Fj dHVhbGx5X3NldF9iYWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKPiAgCj4gLQl0bXAgPSBJOTE1X1JF QUQoQlhUX0JMQ19QV01fQ1RMMSk7Cj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTDEsIHRt cCAmIH5CWFRfQkxDX1BXTV9FTkFCTEUpOwo+ICsJdG1wID0gSTkxNV9SRUFEKEJYVF9CTENfUFdN X0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKPiArCUk5MTVfV1JJVEUoQlhUX0JM Q19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksCj4gKwkJCXRtcCAmIH5CWFRf QkxDX1BXTV9FTkFCTEUpOwo+ICsKPiArCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIg PT0gMSkgewo+ICsJCXZhbCA9IEk5MTVfUkVBRChVVElMX1BJTl9DVEwpOwo+ICsJCXZhbCAmPSB+ VVRJTF9QSU5fRU5BQkxFOwo+ICsJCUk5MTVfV1JJVEUoVVRJTF9QSU5fQ1RMLCB2YWwpOwo+ICsJ fQo+ICB9Cj4gIAo+ICB2b2lkIGludGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiBAQCAtOTg4LDE2ICs5OTgsMzggQEAgc3RhdGlj IHZvaWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+IC0JdTMy IHB3bV9jdGw7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2dldF9waXBlX2Zyb21fY29ubmVj dG9yKGNvbm5lY3Rvcik7Cj4gKwl1MzIgcHdtX2N0bCwgdmFsOwo+ICsKPiArCS8qIFRvIHVzZSAy bmQgc2V0IG9mIGJhY2tsaWdodCByZWdpc3RlcnMsIHV0aWxpdHkgcGluIGhhcyB0byBiZQo+ICsJ ICogZW5hYmxlZCB3aXRoIFBXTSBtb2RlLgo+ICsJICogVGhlIGZpZWxkIHNob3VsZCBvbmx5IGJl IGNoYW5nZWQgd2hlbiB0aGUgdXRpbGl0eSBwaW4gaXMgZGlzYWJsZWQKPiArCSAqLwo+ICsJaWYg KHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciA9PSAxKSB7Cj4gKwkJdmFsID0gSTkxNV9SRUFE KFVUSUxfUElOX0NUTCk7Cj4gKwkJaWYgKHZhbCAmIFVUSUxfUElOX0VOQUJMRSkgewo+ICsJCQlE Uk1fREVCVUdfS01TKCJ1dGlsIHBpbiBhbHJlYWR5IGVuYWJsZWRcbiIpOwo+ICsJCQl2YWwgJj0g flVUSUxfUElOX0VOQUJMRTsKPiArCQkJSTkxNV9XUklURShVVElMX1BJTl9DVEwsIHZhbCk7Cj4g KwkJfQo+ICAKPiAtCXB3bV9jdGwgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01fQ1RMMSk7Cj4gKwkJ dmFsID0gMDsKPiArCQlpZiAocGFuZWwtPmJhY2tsaWdodC51dGlsX3Bpbl9hY3RpdmVfbG93KQo+ ICsJCQl2YWwgfD0gVVRJTF9QSU5fUE9MQVJJVFk7Cj4gKwkJSTkxNV9XUklURShVVElMX1BJTl9D VEwsIHZhbCB8IFVUSUxfUElOX1BJUEUocGlwZSkgfAo+ICsJCQkJVVRJTF9QSU5fTU9ERV9QV00g fCBVVElMX1BJTl9FTkFCTEUpOwo+ICsJfQo+ICsKPiArCXB3bV9jdGwgPSBJOTE1X1JFQUQoQlhU X0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+ICAJaWYgKHB3bV9j dGwgJiBCWFRfQkxDX1BXTV9FTkFCTEUpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJiYWNrbGlnaHQg YWxyZWFkeSBlbmFibGVkXG4iKTsKPiAgCQlwd21fY3RsICY9IH5CWFRfQkxDX1BXTV9FTkFCTEU7 Cj4gLQkJSTkxNV9XUklURShCWFRfQkxDX1BXTV9DVEwxLCBwd21fY3RsKTsKPiArCQlJOTE1X1dS SVRFKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAo+ICsJCQkJ cHdtX2N0bCk7Cj4gIAl9Cj4gIAo+IC0JSTkxNV9XUklURShCWFRfQkxDX1BXTV9GUkVRMSwgcGFu ZWwtPmJhY2tsaWdodC5tYXgpOwo+ICsJSTkxNV9XUklURShCWFRfQkxDX1BXTV9GUkVRKHBhbmVs LT5iYWNrbGlnaHQuY29udHJvbGxlciksCj4gKwkJCXBhbmVsLT5iYWNrbGlnaHQubWF4KTsKPiAg Cj4gIAlpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgcGFuZWwt PmJhY2tsaWdodC5sZXZlbCk7Cj4gIAo+IEBAIC0xMDA1LDkgKzEwMzcsMTAgQEAgc3RhdGljIHZv aWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICAJaWYgKHBhbmVsLT5iYWNrbGlnaHQuYWN0aXZlX2xvd19wd20pCj4gIAkJcHdtX2N0bCB8 PSBCWFRfQkxDX1BXTV9QT0xBUklUWTsKPiAgCj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NU TDEsIHB3bV9jdGwpOwo+IC0JUE9TVElOR19SRUFEKEJYVF9CTENfUFdNX0NUTDEpOwo+IC0JSTkx NV9XUklURShCWFRfQkxDX1BXTV9DVEwxLCBwd21fY3RsIHwgQlhUX0JMQ19QV01fRU5BQkxFKTsK PiArCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxl ciksIHB3bV9jdGwpOwo+ICsJUE9TVElOR19SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFj a2xpZ2h0LmNvbnRyb2xsZXIpKTsKPiArCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVs LT5iYWNrbGlnaHQuY29udHJvbGxlciksCj4gKwkJCXB3bV9jdGwgfCBCWFRfQkxDX1BXTV9FTkFC TEUpOwo+ICB9Cj4gIAo+ICB2b2lkIGludGVsX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IEBAIC0xMzcwLDEyICsxNDAzLDI4IEBAIGJ4 dF9zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVt IHBpcGUgdW51c2VkKQo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOwo+ICAJdTMyIHB3bV9jdGwsIHZhbDsKPiAgCj4gLQlwd21fY3RsID0gSTkxNV9SRUFE KEJYVF9CTENfUFdNX0NUTDEpOwo+IC0JcGFuZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93X3B3bSA9 IHB3bV9jdGwgJiBCWFRfQkxDX1BXTV9QT0xBUklUWTsKPiArCS8qCj4gKwkgKiBGb3IgQlhUIGhh cmQgY29kaW5nIHRoZSBCYWNrbGlnaHQgY29udHJvbGxlciB0byAwLgo+ICsJICogVE9ETyA6IFJl YWQgdGhlIGNvbnRyb2xsZXIgdmFsdWUgZnJvbSBWQlQgYW5kIGdlbmVyYWxpemUKPiArCSAqLwo+ ICsJcGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyID0gMDsKPiAgCj4gLQlwYW5lbC0+YmFja2xp Z2h0Lm1heCA9IEk5MTVfUkVBRChCWFRfQkxDX1BXTV9GUkVRMSk7Cj4gLQlpZiAoIXBhbmVsLT5i YWNrbGlnaHQubWF4KQo+IC0JCXJldHVybiAtRU5PREVWOwoKVGhlcmUgd2FzIGEgY29uZmxpY3Qg aGVyZSBhbmQgcmVtb3ZpbmcgdGhhdCBpZiBjaGVjayBzZWVtZWQgYWNjaWRlbnRhbC4gU28KSSBr ZXB0IGl0LgoKPiArCXB3bV9jdGwgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5i YWNrbGlnaHQuY29udHJvbGxlcikpOwo+ICsKPiArCS8qIEtlZXBpbmcgdGhlIGNoZWNrIGlmIGNv bnRyb2xsZXIgMSBpcyB0byBiZSBwcm9ncmFtbWVkLgo+ICsJICogVGhpcyB3aWxsIGNvbWUgaW50 byBhZmZlY3Qgb25jZSB0aGUgVkJUIHBhcnNpbmcKPiArCSAqIGlzIGZpeGVkIGZvciBjb250cm9s bGVyIHNlbGVjdGlvbiwgYW5kIGNvbnRyb2xsZXIgMSBpcyB1c2VkCj4gKwkgKiBmb3IgYSBwcnRp Y3VsYXIgZGlzcGxheSBjb25maWd1cmF0aW9uLgo+ICsJICovCj4gKwlpZiAocGFuZWwtPmJhY2ts aWdodC5jb250cm9sbGVyID09IDEpIHsKPiArCQl2YWwgPSBJOTE1X1JFQUQoVVRJTF9QSU5fQ1RM KTsKPiArCQlwYW5lbC0+YmFja2xpZ2h0LnV0aWxfcGluX2FjdGl2ZV9sb3cgPQo+ICsJCQkJCXZh bCAmIFVUSUxfUElOX1BPTEFSSVRZOwo+ICsJfQo+ICsKPiArCXBhbmVsLT5iYWNrbGlnaHQuYWN0 aXZlX2xvd19wd20gPSBwd21fY3RsICYgQlhUX0JMQ19QV01fUE9MQVJJVFk7Cj4gKwlwYW5lbC0+ YmFja2xpZ2h0Lm1heCA9IEk5MTVfUkVBRCgKPiArCQkJQlhUX0JMQ19QV01fRlJFUShwYW5lbC0+ YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKClRoaXMgaXNuJ3QgaG93IHdlIGJyZWFrIGxpbmVzLiBG aXhlZCB3aGlsZSBhcHBseWluZy4KLURhbmllbAoKPiAgCj4gIAl2YWwgPSBieHRfZ2V0X2JhY2ts aWdodChjb25uZWN0b3IpOwo+ICAJcGFuZWwtPmJhY2tsaWdodC5sZXZlbCA9IGludGVsX3BhbmVs X2NvbXB1dGVfYnJpZ2h0bmVzcyhjb25uZWN0b3IsIHZhbCk7Cj4gLS0gCj4gMS43LjkuNQo+IAo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAK RGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDov L2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK