From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [BXT MIPI PATCH v5 11/14] drm/i915/bxt: Modify BXT BLC according to VBT changes Date: Thu, 01 Oct 2015 13:16:26 +0300 Message-ID: <87a8s2c2rp.fsf@intel.com> 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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 8AA8C6E147 for ; Thu, 1 Oct 2015 03:13:08 -0700 (PDT) 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 , intel-gfx@lists.freedesktop.org Cc: shobhit.kumar@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAzMCBTZXAgMjAxNSwgVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogU3VuaWwgS2FtYXRoIDxzdW5pbC5rYW1hdGhAaW50ZWwuY29tPgo+Cj4g TGF0ZXN0IFZCVCBtZW50aW9ucyB3aGljaCBzZXQgb2YgcmVnaXN0ZXJzIHdpbGwgYmUgdXNlZCBm b3IgQkxDLAo+IGFzIGNvbnRyb2xsZXIgbnVtYmVyIGZpZWxkLiBNYWtpbmcgdXNlIG9mIHRoaXMg ZmllbGQgaW4gQlhUCj4gQkxDIGltcGxlbWVudGF0aW9uLiBBbHNvLCB0aGUgcmVnaXN0ZXJzIGFy ZSB1c2VkIGluIGNhc2UgY29udHJvbAo+IHBpbiBpbmRpY2F0ZXMgZGlzcGxheSBEREkuIEFkZGlu ZyBhIGNoZWNrIGZvciB0aGlzLgo+IEFjY29yZGluZyB0byBCc3BlYywgQkxDX1BXTV8qXzIgdXNl cyB0aGUgZGlzcGxheSB1dGlsaXR5IHBpbiBmb3Igb3V0cHV0Lgo+IFRvIHVzZSBiYWNrbGlnaHQg MiwgZW5hYmxlIHRoZSB1dGlsaXR5IHBpbiB3aXRoIG1vZGUgPSBQV00KPiAgICB2MjogSmFuaSdz IHJldmlldyBjb21tZW50cwo+ICAgIGFkZHJlc3NlZAo+ICAgICAgICAtIEFkZCBhIHByZWZpeCBf IHRvIEJYVCBCTEMgcmVnaXN0ZXJzIGRlZmluaXRpb25zLgo+ICAgICAgICAtIEFkZCAiYnh0IG9u bHkiIGNvbW1lbnQgZm9yIHU4IGNvbnRyb2xsZXIKPiAgICAgICAgLSBSZW1vdmUgY29udHJvbF9w aW4gY2hlY2sgZm9yIERESSBjb250cm9sbGVyCj4gICAgICAgIC0gQ2hlY2sgZm9yIHZhbGlkIGNv bnRyb2xsZXIgdmFsdWVzCj4gICAgICAgIC0gU2V0IHBpcGUgYml0cyBpbiBVVElMX1BJTl9DVEwK PiAgICAgICAgLSBFbmFibGUvRGlzYWJsZSBVVElMX1BJTl9DVEwgaW4gZW5hYmxlL2Rpc2FibGVf YmFja2xpZ2h0KCkKPiAgICAgICAgLSBJZiBCTEMgMiBpcyB1c2VkLCByZWFkIGFjdGl2ZV9sb3df cHdtIGZyb20gVVRJTF9QSU4gcG9sYXJpdHkKPiAgICBTYXRoZWVzaCdzIHJldmlldyBjb21tZW50 IGFkZHJlc3NlZAo+ICAgICAgICAtIElmIFVUSUwgUElOIGlzIGFscmVhZHkgZW5hYmxlZCwgQklP UyB3b3VsZCBoYXZlIHByb2dyYW1tZWQgaXQuIE5vCj4gICAgICAgIG5lZWQgdG8gZGlzYWJsZSBh bmQgZW5hYmxlIGFnYWluLgo+ICAgIHYzOiBKYW5pJ3MgcmV2aWV3IGNvbW1lbnRzCj4gICAgICAg IC0gYWRkIFVUSUxfUElOX1BJUEVfTUFTSyBhbmQgVVRJTF9QSU5fTU9ERV9NQVNLCj4gICAgICAg IC0gRGlzYWJsZSBVVElMX1BJTiBpZiBjb250cm9sbGVyIDEgaXMgdXNlZAo+ICAgICAgICAtIE1h c2sgb3V0IFVUSUxfUElOX1BJUEVfTUFTSyBhbmQgVVRJTF9QSU5fTU9ERV9NQVNLIGJlZm9yZSBl bmFibGluZwo+ICAgICAgICBVVElMX1BJTgo+ICAgICAgICAtIGNoZWNrIHZhbGlkIGNvbnRyb2xs ZXIgdmFsdWUgaW4gaW50ZWxfYmlvcy5jCj4gICAgICAgIC0gYWRkIGJhY2tsaWdodC51dGlsX3Bp bl9hY3RpdmVfbG93Cj4gICAgICAgIC0gZGlzYWJsZSB1dGlsIHBpbiBiZWZvcmUgZW5hYmxpbmcK PiAgICB2NDogQ2hhbmdlIGZvciBCWFQtUE8gYnJhbmNoOgo+ICAgIFN0dWJiZWQgdW53YW50ZWQg ZGVmaW5pdGlvbiB3aGljaCB3YXMgZXhpc3RpbmcgYmVmb3JlCj4gICAgYmVjYXVzZSBvZiBEQzYg cGF0Y2guCj4gICAgVVRJTF9QSU5fTU9ERV9QV00gICAgICgweDFiIDw8IDI0KQo+Cj4gdjI6IEZp eGVkIEphbmkncyByZXZpZXcgY29tbWVudC4KPgo+IHYzOiBTcGxpdCB0aGUgYmFja2lnaHQgUFdN IGZyZXF1ZW5jeSBwcm9ncmFtbWluZyBpbnRvIHNlcGFyYXRlIHBhdGNoLAo+ICAgICBpbiBjYXNl cyBCSU9TIGRvZXNuJ3QgaW5pdGlhbGl6ZXMgaXQuCj4KPiB2NDogU3RhcnRpbmcgYWZyZXNoIGFu ZCBub3QgbW9kaWZ5aW5nIGV4aXN0aW5nIHN0YXRlIGZvciBiYWNrbGlnaHQsIGFzCj4gICAgIHBl ciBKYW5pJ3MgcmVjb21tZW5kYXRpb24uCj4KPiB2NTogRml4ZWQgSmFuaSdzIHJldmlldyBjb21t ZW50IHdydCB1dGlsIHBpbiBlbmFibGUKPgo+IFNpZ25lZC1vZmYtYnk6IFZhbmRhbmEgS2FubmFu IDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogU3VuaWwgS2FtYXRo IDxzdW5pbC5rYW1hdGhAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2FyIDx1 bWEuc2hhbmthckBpbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGludGVsLmNvbT4KCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o ICAgIHwgICAyOCArKysrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICB8ICAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIHwgICA4 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2Vk LCA4OCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+IGluZGV4IDg4YTE2ZTIuLjUxOWY3NjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiBAQCAtMzUxMiwxNyArMzUxMiwyOSBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsK PiAgI2RlZmluZSBVVElMX1BJTl9DVEwJCTB4NDg0MDAKPiAgI2RlZmluZSAgIFVUSUxfUElOX0VO QUJMRQkoMSA8PCAzMSkKPiAgCj4gKyNkZWZpbmUgICBVVElMX1BJTl9QSVBFKHgpICAgICAoKHgp IDw8IDI5KQo+ICsjZGVmaW5lICAgVVRJTF9QSU5fUElQRV9NQVNLICAgKDMgPDwgMjkpCj4gKyNk ZWZpbmUgICBVVElMX1BJTl9NT0RFX1BXTSAgICAoMSA8PCAyNCkKPiArI2RlZmluZSAgIFVUSUxf UElOX01PREVfTUFTSyAgICgweGYgPDwgMjQpCj4gKyNkZWZpbmUgICBVVElMX1BJTl9QT0xBUklU WSAgICAoMSA8PCAyMikKPiArCj4gIC8qIEJYVCBiYWNrbGlnaHQgcmVnaXN0ZXIgZGVmaW5pdGlv bi4gKi8KPiAtI2RlZmluZSBCWFRfQkxDX1BXTV9DVEwxCQkJMHhDODI1MAo+ICsjZGVmaW5lIF9C WFRfQkxDX1BXTV9DVEwxCQkJMHhDODI1MAo+ICAjZGVmaW5lICAgQlhUX0JMQ19QV01fRU5BQkxF CQkJKDEgPDwgMzEpCj4gICNkZWZpbmUgICBCWFRfQkxDX1BXTV9QT0xBUklUWQkJCSgxIDw8IDI5 KQo+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0ZSRVExCQkJMHhDODI1NAo+IC0jZGVmaW5lIEJYVF9C TENfUFdNX0RVVFkxCQkJMHhDODI1OAo+IC0KPiAtI2RlZmluZSBCWFRfQkxDX1BXTV9DVEwyCQkJ MHhDODM1MAo+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0ZSRVEyCQkJMHhDODM1NAo+IC0jZGVmaW5l IEJYVF9CTENfUFdNX0RVVFkyCQkJMHhDODM1OAo+IC0KPiArI2RlZmluZSBfQlhUX0JMQ19QV01f RlJFUTEJCQkweEM4MjU0Cj4gKyNkZWZpbmUgX0JYVF9CTENfUFdNX0RVVFkxCQkJMHhDODI1OAo+ ICsKPiArI2RlZmluZSBfQlhUX0JMQ19QV01fQ1RMMgkJCTB4QzgzNTAKPiArI2RlZmluZSBfQlhU X0JMQ19QV01fRlJFUTIJCQkweEM4MzU0Cj4gKyNkZWZpbmUgX0JYVF9CTENfUFdNX0RVVFkyCQkJ MHhDODM1OAo+ICsKPiArI2RlZmluZSBCWFRfQkxDX1BXTV9DVEwoY29udHJvbGxlcikgICAgX1BJ UEUoY29udHJvbGxlciwgXAo+ICsJCQkJCV9CWFRfQkxDX1BXTV9DVEwxLCBfQlhUX0JMQ19QV01f Q1RMMikKPiArI2RlZmluZSBCWFRfQkxDX1BXTV9GUkVRKGNvbnRyb2xsZXIpICAgX1BJUEUoY29u dHJvbGxlciwgXAo+ICsJCQkJCV9CWFRfQkxDX1BXTV9GUkVRMSwgX0JYVF9CTENfUFdNX0ZSRVEy KQo+ICsjZGVmaW5lIEJYVF9CTENfUFdNX0RVVFkoY29udHJvbGxlcikgICBfUElQRShjb250cm9s bGVyLCBcCj4gKwkJCQkJX0JYVF9CTENfUFdNX0RVVFkxLCBfQlhUX0JMQ19QV01fRFVUWTIpCj4g IAo+ICAjZGVmaW5lIFBDSF9HVENfQ1RMCQkweGU3MDAwCj4gICNkZWZpbmUgICBQQ0hfR1RDX0VO QUJMRQkoMSA8PCAzMSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDEwNTkyODMu LmQ4Y2EwNzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xODIsNyArMTgy LDkgQEAgc3RydWN0IGludGVsX3BhbmVsIHsKPiAgCQlib29sIGVuYWJsZWQ7Cj4gIAkJYm9vbCBj b21iaW5hdGlvbl9tb2RlOwkvKiBnZW4gMi80IG9ubHkgKi8KPiAgCQlib29sIGFjdGl2ZV9sb3df cHdtOwo+ICsJCWJvb2wgdXRpbF9waW5fYWN0aXZlX2xvdzsJLyogYnh0KyAqLwo+ICAJCXN0cnVj dCBiYWNrbGlnaHRfZGV2aWNlICpkZXZpY2U7Cj4gKwkJdTggY29udHJvbGxlcjsJCS8qIGJ4dCsg b25seSAqLwo+ICAJfSBiYWNrbGlnaHQ7Cj4gIAo+ICAJdm9pZCAoKmJhY2tsaWdodF9wb3dlciko c3RydWN0IGludGVsX2Nvbm5lY3RvciAqLCBib29sIGVuYWJsZSk7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jCj4gaW5kZXggNTVhYWQyMy4uMGQyMTcxNSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcGFuZWwuYwo+IEBAIC01MzksOSArNTM5LDEwIEBAIHN0YXRpYyB1MzIgdmx2X2dl dF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICBzdGF0aWMg dTMyIGJ4dF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK PiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4g KwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAt CXJldHVybiBJOTE1X1JFQUQoQlhUX0JMQ19QV01fRFVUWTEpOwo+ICsJcmV0dXJuIEk5MTVfUkVB RChCWFRfQkxDX1BXTV9EVVRZKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdTMyIGludGVsX3BhbmVsX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQo+IEBAIC02MjgsOCArNjI5LDkgQEAgc3RhdGljIHZvaWQgYnh0 X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2 ZWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2 Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAg Cj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0RVVFkxLCBsZXZlbCk7Cj4gKwlJOTE1X1dSSVRF KEJYVF9CTENfUFdNX0RVVFkocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwgbGV2ZWwpOwo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IEBAIC03NjEsMTIgKzc2MywyMCBAQCBzdGF0aWMgdm9p ZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gLQl1MzIgdG1wOwo+ICsJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOwo+ICsJdTMyIHRtcCwgdmFsOwo+ICAKPiAgCWludGVsX3BhbmVsX2FjdHVhbGx5X3Nl dF9iYWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKPiAgCj4gLQl0bXAgPSBJOTE1X1JFQUQoQlhUX0JM Q19QV01fQ1RMMSk7Cj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTDEsIHRtcCAmIH5CWFRf QkxDX1BXTV9FTkFCTEUpOwo+ICsJdG1wID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5l bC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKPiArCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RM KHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksCj4gKwkJCXRtcCAmIH5CWFRfQkxDX1BXTV9F TkFCTEUpOwo+ICsKPiArCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIgPT0gMSkgewo+ ICsJCXZhbCA9IEk5MTVfUkVBRChVVElMX1BJTl9DVEwpOwo+ICsJCXZhbCAmPSB+VVRJTF9QSU5f RU5BQkxFOwo+ICsJCUk5MTVfV1JJVEUoVVRJTF9QSU5fQ1RMLCB2YWwpOwo+ICsJfQo+ICB9Cj4g IAo+ICB2b2lkIGludGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiBAQCAtOTg4LDE2ICs5OTgsMzggQEAgc3RhdGljIHZvaWQgYnh0 X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0 IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+IC0JdTMyIHB3bV9jdGw7 Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2dldF9waXBlX2Zyb21fY29ubmVjdG9yKGNvbm5l Y3Rvcik7Cj4gKwl1MzIgcHdtX2N0bCwgdmFsOwo+ICsKPiArCS8qIFRvIHVzZSAybmQgc2V0IG9m IGJhY2tsaWdodCByZWdpc3RlcnMsIHV0aWxpdHkgcGluIGhhcyB0byBiZQo+ICsJICogZW5hYmxl ZCB3aXRoIFBXTSBtb2RlLgo+ICsJICogVGhlIGZpZWxkIHNob3VsZCBvbmx5IGJlIGNoYW5nZWQg d2hlbiB0aGUgdXRpbGl0eSBwaW4gaXMgZGlzYWJsZWQKPiArCSAqLwo+ICsJaWYgKHBhbmVsLT5i YWNrbGlnaHQuY29udHJvbGxlciA9PSAxKSB7Cj4gKwkJdmFsID0gSTkxNV9SRUFEKFVUSUxfUElO X0NUTCk7Cj4gKwkJaWYgKHZhbCAmIFVUSUxfUElOX0VOQUJMRSkgewo+ICsJCQlEUk1fREVCVUdf S01TKCJ1dGlsIHBpbiBhbHJlYWR5IGVuYWJsZWRcbiIpOwo+ICsJCQl2YWwgJj0gflVUSUxfUElO X0VOQUJMRTsKPiArCQkJSTkxNV9XUklURShVVElMX1BJTl9DVEwsIHZhbCk7Cj4gKwkJfQo+ICAK PiAtCXB3bV9jdGwgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01fQ1RMMSk7Cj4gKwkJdmFsID0gMDsK PiArCQlpZiAocGFuZWwtPmJhY2tsaWdodC51dGlsX3Bpbl9hY3RpdmVfbG93KQo+ICsJCQl2YWwg fD0gVVRJTF9QSU5fUE9MQVJJVFk7Cj4gKwkJSTkxNV9XUklURShVVElMX1BJTl9DVEwsIHZhbCB8 IFVUSUxfUElOX1BJUEUocGlwZSkgfAo+ICsJCQkJVVRJTF9QSU5fTU9ERV9QV00gfCBVVElMX1BJ Tl9FTkFCTEUpOwo+ICsJfQo+ICsKPiArCXB3bV9jdGwgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01f Q1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+ICAJaWYgKHB3bV9jdGwgJiBCWFRf QkxDX1BXTV9FTkFCTEUpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJiYWNrbGlnaHQgYWxyZWFkeSBl bmFibGVkXG4iKTsKPiAgCQlwd21fY3RsICY9IH5CWFRfQkxDX1BXTV9FTkFCTEU7Cj4gLQkJSTkx NV9XUklURShCWFRfQkxDX1BXTV9DVEwxLCBwd21fY3RsKTsKPiArCQlJOTE1X1dSSVRFKEJYVF9C TENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAo+ICsJCQkJcHdtX2N0bCk7 Cj4gIAl9Cj4gIAo+IC0JSTkxNV9XUklURShCWFRfQkxDX1BXTV9GUkVRMSwgcGFuZWwtPmJhY2ts aWdodC5tYXgpOwo+ICsJSTkxNV9XUklURShCWFRfQkxDX1BXTV9GUkVRKHBhbmVsLT5iYWNrbGln aHQuY29udHJvbGxlciksCj4gKwkJCXBhbmVsLT5iYWNrbGlnaHQubWF4KTsKPiAgCj4gIAlpbnRl bF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgcGFuZWwtPmJhY2tsaWdo dC5sZXZlbCk7Cj4gIAo+IEBAIC0xMDA1LDkgKzEwMzcsMTAgQEAgc3RhdGljIHZvaWQgYnh0X2Vu YWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJaWYg KHBhbmVsLT5iYWNrbGlnaHQuYWN0aXZlX2xvd19wd20pCj4gIAkJcHdtX2N0bCB8PSBCWFRfQkxD X1BXTV9QT0xBUklUWTsKPiAgCj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTDEsIHB3bV9j dGwpOwo+IC0JUE9TVElOR19SRUFEKEJYVF9CTENfUFdNX0NUTDEpOwo+IC0JSTkxNV9XUklURShC WFRfQkxDX1BXTV9DVEwxLCBwd21fY3RsIHwgQlhUX0JMQ19QV01fRU5BQkxFKTsKPiArCUk5MTVf V1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksIHB3bV9j dGwpOwo+ICsJUE9TVElOR19SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNv bnRyb2xsZXIpKTsKPiArCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGln aHQuY29udHJvbGxlciksCj4gKwkJCXB3bV9jdGwgfCBCWFRfQkxDX1BXTV9FTkFCTEUpOwo+ICB9 Cj4gIAo+ICB2b2lkIGludGVsX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQo+IEBAIC0xMzcwLDEyICsxNDAzLDI4IEBAIGJ4dF9zZXR1cF9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgdW51 c2VkKQo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ ICAJdTMyIHB3bV9jdGwsIHZhbDsKPiAgCj4gLQlwd21fY3RsID0gSTkxNV9SRUFEKEJYVF9CTENf UFdNX0NUTDEpOwo+IC0JcGFuZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93X3B3bSA9IHB3bV9jdGwg JiBCWFRfQkxDX1BXTV9QT0xBUklUWTsKPiArCS8qCj4gKwkgKiBGb3IgQlhUIGhhcmQgY29kaW5n IHRoZSBCYWNrbGlnaHQgY29udHJvbGxlciB0byAwLgo+ICsJICogVE9ETyA6IFJlYWQgdGhlIGNv bnRyb2xsZXIgdmFsdWUgZnJvbSBWQlQgYW5kIGdlbmVyYWxpemUKPiArCSAqLwo+ICsJcGFuZWwt PmJhY2tsaWdodC5jb250cm9sbGVyID0gMDsKPiAgCj4gLQlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9 IEk5MTVfUkVBRChCWFRfQkxDX1BXTV9GUkVRMSk7Cj4gLQlpZiAoIXBhbmVsLT5iYWNrbGlnaHQu bWF4KQo+IC0JCXJldHVybiAtRU5PREVWOwo+ICsJcHdtX2N0bCA9IEk5MTVfUkVBRChCWFRfQkxD X1BXTV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSk7Cj4gKwo+ICsJLyogS2VlcGlu ZyB0aGUgY2hlY2sgaWYgY29udHJvbGxlciAxIGlzIHRvIGJlIHByb2dyYW1tZWQuCj4gKwkgKiBU aGlzIHdpbGwgY29tZSBpbnRvIGFmZmVjdCBvbmNlIHRoZSBWQlQgcGFyc2luZwo+ICsJICogaXMg Zml4ZWQgZm9yIGNvbnRyb2xsZXIgc2VsZWN0aW9uLCBhbmQgY29udHJvbGxlciAxIGlzIHVzZWQK PiArCSAqIGZvciBhIHBydGljdWxhciBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uCj4gKwkgKi8KPiAr CWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIgPT0gMSkgewo+ICsJCXZhbCA9IEk5MTVf UkVBRChVVElMX1BJTl9DVEwpOwo+ICsJCXBhbmVsLT5iYWNrbGlnaHQudXRpbF9waW5fYWN0aXZl X2xvdyA9Cj4gKwkJCQkJdmFsICYgVVRJTF9QSU5fUE9MQVJJVFk7Cj4gKwl9Cj4gKwo+ICsJcGFu ZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93X3B3bSA9IHB3bV9jdGwgJiBCWFRfQkxDX1BXTV9QT0xB UklUWTsKPiArCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gSTkxNV9SRUFEKAo+ICsJCQlCWFRfQkxD X1BXTV9GUkVRKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+ICAKPiAgCXZhbCA9IGJ4 dF9nZXRfYmFja2xpZ2h0KGNvbm5lY3Rvcik7Cj4gIAlwYW5lbC0+YmFja2xpZ2h0LmxldmVsID0g aW50ZWxfcGFuZWxfY29tcHV0ZV9icmlnaHRuZXNzKGNvbm5lY3RvciwgdmFsKTsKPiAtLSAKPiAx LjcuOS41Cj4KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK