From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [BXT MIPI PATCH v3 11/14] drm/i915/bxt: Modify BXT BLC according to VBT changes Date: Fri, 18 Sep 2015 16:51:25 +0300 Message-ID: <874mirrg2q.fsf@intel.com> References: <1441116710-14118-1-git-send-email-uma.shankar@intel.com> <1441116710-14118-12-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 08FB67208A for ; Fri, 18 Sep 2015 06:48:11 -0700 (PDT) In-Reply-To: <1441116710-14118-12-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 T24gVHVlLCAwMSBTZXAgMjAxNSwgVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4g 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 cyBCSU9TIGRvZXNuJ3QgaW5pdGlhbGl6ZXMgaXQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBWYW5kYW5h IEthbm5hbiA8dmFuZGFuYS5rYW5uYW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFN1bmls IEthbWF0aCA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hh bmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oICAgIHwgICAyOCArKysrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICB8ICAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w YW5lbC5jIHwgICA4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAgMyBm aWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IGU0M2IwNTMuLjg0MDdiNWMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiBAQCAtMzUxMiwxNyArMzUxMiwyOSBAQCBlbnVtIHNrbF9kaXNwX3Bv d2VyX3dlbGxzIHsKPiAgI2RlZmluZSBVVElMX1BJTl9DVEwJCTB4NDg0MDAKPiAgI2RlZmluZSAg IFVUSUxfUElOX0VOQUJMRQkoMSA8PCAzMSkKPiAgCj4gKyNkZWZpbmUgICBVVElMX1BJTl9QSVBF KHgpICAgICAoKHgpIDw8IDI5KQo+ICsjZGVmaW5lICAgVVRJTF9QSU5fUElQRV9NQVNLICAgKDMg PDwgMjkpCj4gKyNkZWZpbmUgICBVVElMX1BJTl9NT0RFX1BXTSAgICAoMSA8PCAyNCkKPiArI2Rl ZmluZSAgIFVUSUxfUElOX01PREVfTUFTSyAgICgweGYgPDwgMjQpCj4gKyNkZWZpbmUgICBVVElM X1BJTl9QT0xBUklUWSAgICAoMSA8PCAyMikKPiArCj4gIC8qIEJYVCBiYWNrbGlnaHQgcmVnaXN0 ZXIgZGVmaW5pdGlvbi4gKi8KPiAtI2RlZmluZSBCWFRfQkxDX1BXTV9DVEwxCQkJMHhDODI1MAo+ ICsjZGVmaW5lIF9CWFRfQkxDX1BXTV9DVEwxCQkJMHhDODI1MAo+ICAjZGVmaW5lICAgQlhUX0JM Q19QV01fRU5BQkxFCQkJKDEgPDwgMzEpCj4gICNkZWZpbmUgICBCWFRfQkxDX1BXTV9QT0xBUklU WQkJCSgxIDw8IDI5KQo+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0ZSRVExCQkJMHhDODI1NAo+IC0j ZGVmaW5lIEJYVF9CTENfUFdNX0RVVFkxCQkJMHhDODI1OAo+IC0KPiAtI2RlZmluZSBCWFRfQkxD X1BXTV9DVEwyCQkJMHhDODM1MAo+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0ZSRVEyCQkJMHhDODM1 NAo+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0RVVFkyCQkJMHhDODM1OAo+IC0KPiArI2RlZmluZSBf QlhUX0JMQ19QV01fRlJFUTEJCQkweEM4MjU0Cj4gKyNkZWZpbmUgX0JYVF9CTENfUFdNX0RVVFkx CQkJMHhDODI1OAo+ICsKPiArI2RlZmluZSBfQlhUX0JMQ19QV01fQ1RMMgkJCTB4QzgzNTAKPiAr I2RlZmluZSBfQlhUX0JMQ19QV01fRlJFUTIJCQkweEM4MzU0Cj4gKyNkZWZpbmUgX0JYVF9CTENf UFdNX0RVVFkyCQkJMHhDODM1OAo+ICsKPiArI2RlZmluZSBCWFRfQkxDX1BXTV9DVEwoY29udHJv bGxlcikgICAgX1BJUEUoY29udHJvbGxlciwgXAo+ICsJCQkJCV9CWFRfQkxDX1BXTV9DVEwxLCBf QlhUX0JMQ19QV01fQ1RMMikKPiArI2RlZmluZSBCWFRfQkxDX1BXTV9GUkVRKGNvbnRyb2xsZXIp ICAgX1BJUEUoY29udHJvbGxlciwgXAo+ICsJCQkJCV9CWFRfQkxDX1BXTV9GUkVRMSwgX0JYVF9C TENfUFdNX0ZSRVEyKQo+ICsjZGVmaW5lIEJYVF9CTENfUFdNX0RVVFkoY29udHJvbGxlcikgICBf UElQRShjb250cm9sbGVyLCBcCj4gKwkJCQkJX0JYVF9CTENfUFdNX0RVVFkxLCBfQlhUX0JMQ19Q V01fRFVUWTIpCj4gIAo+ICAjZGVmaW5lIFBDSF9HVENfQ1RMCQkweGU3MDAwCj4gICNkZWZpbmUg ICBQQ0hfR1RDX0VOQUJMRQkoMSA8PCAzMSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGlu ZGV4IDEwNTkyODMuLmQ4Y2EwNzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBA IC0xODIsNyArMTgyLDkgQEAgc3RydWN0IGludGVsX3BhbmVsIHsKPiAgCQlib29sIGVuYWJsZWQ7 Cj4gIAkJYm9vbCBjb21iaW5hdGlvbl9tb2RlOwkvKiBnZW4gMi80IG9ubHkgKi8KPiAgCQlib29s IGFjdGl2ZV9sb3dfcHdtOwo+ICsJCWJvb2wgdXRpbF9waW5fYWN0aXZlX2xvdzsJLyogYnh0KyAq Lwo+ICAJCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpkZXZpY2U7Cj4gKwkJdTggY29udHJvbGxl cjsJCS8qIGJ4dCsgb25seSAqLwo+ICAJfSBiYWNrbGlnaHQ7Cj4gIAo+ICAJdm9pZCAoKmJhY2ts aWdodF9wb3dlcikoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqLCBib29sIGVuYWJsZSk7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gaW5kZXggNTVhYWQyMy4uOWZjZjg2YyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+IEBAIC01MzksOSArNTM5LDEwIEBAIHN0YXRp YyB1MzIgdmx2X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICBzdGF0aWMgdTMyIGJ4dF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFu ZWw7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAKPiAtCXJldHVybiBJOTE1X1JFQUQoQlhUX0JMQ19QV01fRFVUWTEpOwo+ICsJcmV0 dXJuIEk5MTVfUkVBRChCWFRfQkxDX1BXTV9EVVRZKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxl cikpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdTMyIGludGVsX3BhbmVsX2dldF9iYWNrbGlnaHQoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IEBAIC02MjgsOCArNjI5LDkgQEAgc3Rh dGljIHZvaWQgYnh0X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yLCB1MzIgbGV2ZWwpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0 b3ItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9y LT5wYW5lbDsKPiAgCj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0RVVFkxLCBsZXZlbCk7Cj4g KwlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0RVVFkocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVy KSwgbGV2ZWwpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IEBAIC03NjEsMTIgKzc2MywyMCBA QCBzdGF0aWMgdm9pZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9y LT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gLQl1MzIgdG1wOwo+ICsJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9 ICZjb25uZWN0b3ItPnBhbmVsOwo+ICsJdTMyIHRtcCwgdmFsOwo+ICAKPiAgCWludGVsX3BhbmVs X2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKPiAgCj4gLQl0bXAgPSBJOTE1 X1JFQUQoQlhUX0JMQ19QV01fQ1RMMSk7Cj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTDEs IHRtcCAmIH5CWFRfQkxDX1BXTV9FTkFCTEUpOwo+ICsJdG1wID0gSTkxNV9SRUFEKEJYVF9CTENf UFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKPiArCUk5MTVfV1JJVEUoQlhU X0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksCj4gKwkJCXRtcCAmIH5C WFRfQkxDX1BXTV9FTkFCTEUpOwo+ICsKPiArCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xs ZXIgPT0gMSkgewo+ICsJCXZhbCA9IEk5MTVfUkVBRChVVElMX1BJTl9DVEwpOwo+ICsJCXZhbCAm PSB+VVRJTF9QSU5fRU5BQkxFOwo+ICsJCUk5MTVfV1JJVEUoVVRJTF9QSU5fQ1RMLCB2YWwpOwo+ ICsJfQo+ICB9Cj4gIAo+ICB2b2lkIGludGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiBAQCAtOTg4LDE2ICs5OTgsMzkgQEAgc3Rh dGljIHZvaWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+IC0J dTMyIHB3bV9jdGw7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2dldF9waXBlX2Zyb21fY29u bmVjdG9yKGNvbm5lY3Rvcik7Cj4gKwl1MzIgcHdtX2N0bCwgdmFsOwo+ICsKPiArCS8qIFRvIHVz ZSAybmQgc2V0IG9mIGJhY2tsaWdodCByZWdpc3RlcnMsIHV0aWxpdHkgcGluIGhhcyB0byBiZQo+ ICsJICogZW5hYmxlZCB3aXRoIFBXTSBtb2RlLgo+ICsJICogVGhlIGZpZWxkIHNob3VsZCBvbmx5 IGJlIGNoYW5nZWQgd2hlbiB0aGUgdXRpbGl0eSBwaW4gaXMgZGlzYWJsZWQKPiArCSAqLwo+ICsJ aWYgKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciA9PSAxKSB7Cj4gKwkJdmFsID0gSTkxNV9S RUFEKFVUSUxfUElOX0NUTCk7Cj4gKwkJaWYgKHZhbCAmIFVUSUxfUElOX0VOQUJMRSkgewo+ICsJ CQlEUk1fREVCVUdfS01TKCJ1dGlsIHBpbiBhbHJlYWR5IGVuYWJsZWRcbiIpOwo+ICsJCQl2YWwg Jj0gflVUSUxfUElOX0VOQUJMRTsKPiArCQkJSTkxNV9XUklURShVVElMX1BJTl9DVEwsIHZhbCk7 Cj4gKwkJfQo+ICsJCS8qIG1hc2sgb3V0IFVUSUxfUElOX1BJUEUgYW5kIFVUSUxfUElOX01PREUg Ki8KPiArCQl2YWwgJj0gfihVVElMX1BJTl9QSVBFX01BU0sgfCBVVElMX1BJTl9NT0RFX01BU0sp OwoKUGxlYXNlIHN0YXJ0IG91dCB3aXRoIDAgdmFsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIGV4aXN0 aW5nIHN0YXRlLiBUaGlzIGlzCnRoZSBzdHlsZSBhY3Jvc3MgYmFja2xpZ2h0IGVuYWJsaW5nLCBh cGFydCBmcm9tIHNldHVwIHdoaWNoIGdhdGhlcnMgdGhlCm5lZWRlZCBzdGF0ZS4KCldpdGggdGhh dCBmaXhlZCwKClJldmlld2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29t PgoKCj4gKwkJSTkxNV9XUklURShVVElMX1BJTl9DVEwsIHZhbCk7Cj4gKwkJaWYgKHBhbmVsLT5i YWNrbGlnaHQudXRpbF9waW5fYWN0aXZlX2xvdykKPiArCQkJdmFsIHw9IFVUSUxfUElOX1BPTEFS SVRZOwo+ICsJCUk5MTVfV1JJVEUoVVRJTF9QSU5fQ1RMLCB2YWwgfCBVVElMX1BJTl9QSVBFKHBp cGUpIHwKPiArCQkJCVVUSUxfUElOX01PREVfUFdNIHwgVVRJTF9QSU5fRU5BQkxFKTsKPiArCX0K PiAgCj4gLQlwd21fY3RsID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NUTDEpOwo+ICsJcHdtX2N0 bCA9IEk5MTVfUkVBRChCWFRfQkxDX1BXTV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVy KSk7Cj4gIAlpZiAocHdtX2N0bCAmIEJYVF9CTENfUFdNX0VOQUJMRSkgewo+ICAJCURSTV9ERUJV R19LTVMoImJhY2tsaWdodCBhbHJlYWR5IGVuYWJsZWRcbiIpOwo+ICAJCXB3bV9jdGwgJj0gfkJY VF9CTENfUFdNX0VOQUJMRTsKPiAtCQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTDEsIHB3bV9j dGwpOwo+ICsJCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29u dHJvbGxlciksCj4gKwkJCQlwd21fY3RsKTsKPiAgCX0KPiAgCj4gLQlJOTE1X1dSSVRFKEJYVF9C TENfUFdNX0ZSRVExLCBwYW5lbC0+YmFja2xpZ2h0Lm1heCk7Cj4gKwlJOTE1X1dSSVRFKEJYVF9C TENfUFdNX0ZSRVEocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwKPiArCQkJcGFuZWwtPmJh Y2tsaWdodC5tYXgpOwo+ICAKPiAgCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQo Y29ubmVjdG9yLCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKPiAgCj4gQEAgLTEwMDUsOSArMTAz OCwxMCBAQCBzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4gIAlpZiAocGFuZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93X3B3 bSkKPiAgCQlwd21fY3RsIHw9IEJYVF9CTENfUFdNX1BPTEFSSVRZOwo+ICAKPiAtCUk5MTVfV1JJ VEUoQlhUX0JMQ19QV01fQ1RMMSwgcHdtX2N0bCk7Cj4gLQlQT1NUSU5HX1JFQUQoQlhUX0JMQ19Q V01fQ1RMMSk7Cj4gLQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTDEsIHB3bV9jdGwgfCBCWFRf QkxDX1BXTV9FTkFCTEUpOwo+ICsJSTkxNV9XUklURShCWFRfQkxDX1BXTV9DVEwocGFuZWwtPmJh Y2tsaWdodC5jb250cm9sbGVyKSwgcHdtX2N0bCk7Cj4gKwlQT1NUSU5HX1JFQUQoQlhUX0JMQ19Q V01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+ICsJSTkxNV9XUklURShCWFRf QkxDX1BXTV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwKPiArCQkJcHdtX2N0bCB8 IEJYVF9CTENfUFdNX0VOQUJMRSk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfcGFuZWxfZW5hYmxl X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gQEAgLTEzNzAs MTIgKzE0MDQsMjggQEAgYnh0X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsIGVudW0gcGlwZSB1bnVzZWQpCj4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBh bmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gIAl1MzIgcHdtX2N0bCwgdmFsOwo+ICAKPiAtCXB3 bV9jdGwgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01fQ1RMMSk7Cj4gLQlwYW5lbC0+YmFja2xpZ2h0 LmFjdGl2ZV9sb3dfcHdtID0gcHdtX2N0bCAmIEJYVF9CTENfUFdNX1BPTEFSSVRZOwo+ICsJLyoK PiArCSAqIEZvciBCWFQgaGFyZCBjb2RpbmcgdGhlIEJhY2tsaWdodCBjb250cm9sbGVyIHRvIDAu Cj4gKwkgKiBUT0RPIDogUmVhZCB0aGUgY29udHJvbGxlciB2YWx1ZSBmcm9tIFZCVCBhbmQgZ2Vu ZXJhbGl6ZQo+ICsJICovCj4gKwlwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIgPSAwOwo+ICAK PiAtCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0ZSRVExKTsK PiAtCWlmICghcGFuZWwtPmJhY2tsaWdodC5tYXgpCj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gKwlw d21fY3RsID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRy b2xsZXIpKTsKPiArCj4gKwkvKiBLZWVwaW5nIHRoZSBjaGVjayBpZiBjb250cm9sbGVyIDEgaXMg dG8gYmUgcHJvZ3JhbW1lZC4KPiArCSAqIFRoaXMgd2lsbCBjb21lIGludG8gYWZmZWN0IG9uY2Ug dGhlIFZCVCBwYXJzaW5nCj4gKwkgKiBpcyBmaXhlZCBmb3IgY29udHJvbGxlciBzZWxlY3Rpb24s IGFuZCBjb250cm9sbGVyIDEgaXMgdXNlZAo+ICsJICogZm9yIGEgcHJ0aWN1bGFyIGRpc3BsYXkg Y29uZmlndXJhdGlvbi4KPiArCSAqLwo+ICsJaWYgKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxl ciA9PSAxKSB7Cj4gKwkJdmFsID0gSTkxNV9SRUFEKFVUSUxfUElOX0NUTCk7Cj4gKwkJcGFuZWwt PmJhY2tsaWdodC51dGlsX3Bpbl9hY3RpdmVfbG93ID0KPiArCQkJCQl2YWwgJiBVVElMX1BJTl9Q T0xBUklUWTsKPiArCX0KPiArCj4gKwlwYW5lbC0+YmFja2xpZ2h0LmFjdGl2ZV9sb3dfcHdtID0g cHdtX2N0bCAmIEJYVF9CTENfUFdNX1BPTEFSSVRZOwo+ICsJcGFuZWwtPmJhY2tsaWdodC5tYXgg PSBJOTE1X1JFQUQoCj4gKwkJCUJYVF9CTENfUFdNX0ZSRVEocGFuZWwtPmJhY2tsaWdodC5jb250 cm9sbGVyKSk7Cj4gIAo+ICAJdmFsID0gYnh0X2dldF9iYWNrbGlnaHQoY29ubmVjdG9yKTsKPiAg CXBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgPSBpbnRlbF9wYW5lbF9jb21wdXRlX2JyaWdodG5lc3Mo Y29ubmVjdG9yLCB2YWwpOwo+IC0tIAo+IDEuNy45LjUKPgoKLS0gCkphbmkgTmlrdWxhLCBJbnRl bCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=