From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 11/12] drm/i915/bxt: Modify BXT BLC according to VBT changes Date: Mon, 25 May 2015 19:57:47 +0300 Message-ID: <87zj4sh9x0.fsf@intel.com> References: <1432310765-2218-1-git-send-email-uma.shankar@intel.com> <1432310765-2218-12-git-send-email-uma.shankar@intel.com> <874mn1j7ob.fsf@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 696846E4D4 for ; Mon, 25 May 2015 09:59:29 -0700 (PDT) In-Reply-To: <874mn1j7ob.fsf@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 T24gTW9uLCAyNSBNYXkgMjAxNSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVs LmNvbT4gd3JvdGU6Cj4gT24gRnJpLCAyMiBNYXkgMjAxNSwgVW1hIFNoYW5rYXIgPHVtYS5zaGFu a2FyQGludGVsLmNvbT4gd3JvdGU6Cj4+IEZyb206IFN1bmlsIEthbWF0aCA8c3VuaWwua2FtYXRo QGludGVsLmNvbT4KPj4KPj4gTGF0ZXN0IFZCVCBtZW50aW9ucyB3aGljaCBzZXQgb2YgcmVnaXN0 ZXJzIHdpbGwgYmUgdXNlZCBmb3IgQkxDLAo+PiBhcyBjb250cm9sbGVyIG51bWJlciBmaWVsZC4g TWFraW5nIHVzZSBvZiB0aGlzIGZpZWxkIGluIEJYVAo+PiBCTEMgaW1wbGVtZW50YXRpb24uIEFs c28sIHRoZSByZWdpc3RlcnMgYXJlIHVzZWQgaW4gY2FzZSBjb250cm9sCj4+IHBpbiBpbmRpY2F0 ZXMgZGlzcGxheSBEREkuIEFkZGluZyBhIGNoZWNrIGZvciB0aGlzLgo+PiBBY2NvcmRpbmcgdG8g QnNwZWMsIEJMQ19QV01fKl8yIHVzZXMgdGhlIGRpc3BsYXkgdXRpbGl0eSBwaW4gZm9yIG91dHB1 dC4KPj4gVG8gdXNlIGJhY2tsaWdodCAyLCBlbmFibGUgdGhlIHV0aWxpdHkgcGluIHdpdGggbW9k ZSA9IFBXTQo+PiAgICB2MjogSmFuaSdzIHJldmlldyBjb21tZW50cwo+PiAgICBhZGRyZXNzZWQK Pj4gICAgICAgIC0gQWRkIGEgcHJlZml4IF8gdG8gQlhUIEJMQyByZWdpc3RlcnMgZGVmaW5pdGlv bnMuCj4+ICAgICAgICAtIEFkZCAiYnh0IG9ubHkiIGNvbW1lbnQgZm9yIHU4IGNvbnRyb2xsZXIK Pj4gICAgICAgIC0gUmVtb3ZlIGNvbnRyb2xfcGluIGNoZWNrIGZvciBEREkgY29udHJvbGxlcgo+ PiAgICAgICAgLSBDaGVjayBmb3IgdmFsaWQgY29udHJvbGxlciB2YWx1ZXMKPj4gICAgICAgIC0g U2V0IHBpcGUgYml0cyBpbiBVVElMX1BJTl9DVEwKPj4gICAgICAgIC0gRW5hYmxlL0Rpc2FibGUg VVRJTF9QSU5fQ1RMIGluIGVuYWJsZS9kaXNhYmxlX2JhY2tsaWdodCgpCj4+ICAgICAgICAtIElm IEJMQyAyIGlzIHVzZWQsIHJlYWQgYWN0aXZlX2xvd19wd20gZnJvbSBVVElMX1BJTiBwb2xhcml0 eQo+PiAgICBTYXRoZWVzaCdzIHJldmlldyBjb21tZW50IGFkZHJlc3NlZAo+PiAgICAgICAgLSBJ ZiBVVElMIFBJTiBpcyBhbHJlYWR5IGVuYWJsZWQsIEJJT1Mgd291bGQgaGF2ZSBwcm9ncmFtbWVk IGl0LiBObwo+PiAgICAgICAgbmVlZCB0byBkaXNhYmxlIGFuZCBlbmFibGUgYWdhaW4uCj4+ICAg IHYzOiBKYW5pJ3MgcmV2aWV3IGNvbW1lbnRzCj4+ICAgICAgICAtIGFkZCBVVElMX1BJTl9QSVBF X01BU0sgYW5kIFVUSUxfUElOX01PREVfTUFTSwo+PiAgICAgICAgLSBEaXNhYmxlIFVUSUxfUElO IGlmIGNvbnRyb2xsZXIgMSBpcyB1c2VkCj4+ICAgICAgICAtIE1hc2sgb3V0IFVUSUxfUElOX1BJ UEVfTUFTSyBhbmQgVVRJTF9QSU5fTU9ERV9NQVNLIGJlZm9yZSBlbmFibGluZwo+PiAgICAgICAg VVRJTF9QSU4KPj4gICAgICAgIC0gY2hlY2sgdmFsaWQgY29udHJvbGxlciB2YWx1ZSBpbiBpbnRl bF9iaW9zLmMKPj4gICAgICAgIC0gYWRkIGJhY2tsaWdodC51dGlsX3Bpbl9hY3RpdmVfbG93Cj4+ ICAgICAgICAtIGRpc2FibGUgdXRpbCBwaW4gYmVmb3JlIGVuYWJsaW5nCj4+ICAgIHY0OiBDaGFu Z2UgZm9yIEJYVC1QTyBicmFuY2g6Cj4+ICAgIFN0dWJiZWQgdW53YW50ZWQgZGVmaW5pdGlvbiB3 aGljaCB3YXMgZXhpc3RpbmcgYmVmb3JlCj4+ICAgIGJlY2F1c2Ugb2YgREM2IHBhdGNoLgo+PiAg ICBVVElMX1BJTl9NT0RFX1BXTSAgICAgKDB4MWIgPDwgMjQpCj4+Cj4+IFNpZ25lZC1vZmYtYnk6 IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYt Ynk6IFN1bmlsIEthbWF0aCA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1i eTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgIHwgICAyOCArKysrKysrLS0tCj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgIHwgICAgMiArCj4+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wYW5lbC5jIHwgIDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0KPj4gIDMgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9u cygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gaW5kZXggZjk2ZjA0OS4uNWUzOTU4 ZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IEBAIC0zNTA5LDE3ICszNTA5LDI5 IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+PiAgI2RlZmluZSBVVElMX1BJTl9DVEwJ CTB4NDg0MDAKPj4gICNkZWZpbmUgICBVVElMX1BJTl9FTkFCTEUJKDEgPDwgMzEpCj4+ICAKPj4g KyNkZWZpbmUgICBVVElMX1BJTl9QSVBFKHgpICAgICAoKHgpIDw8IDI5KQo+PiArI2RlZmluZSAg IFVUSUxfUElOX1BJUEVfTUFTSyAgICgzIDw8IDI5KQo+PiArI2RlZmluZSAgIFVUSUxfUElOX01P REVfUFdNICAgICgxIDw8IDI0KQo+PiArI2RlZmluZSAgIFVUSUxfUElOX01PREVfTUFTSyAgICgw eGYgPDwgMjQpCj4+ICsjZGVmaW5lICAgVVRJTF9QSU5fUE9MQVJJVFkgICAgKDEgPDwgMjIpCj4+ ICsKPj4gIC8qIEJYVCBiYWNrbGlnaHQgcmVnaXN0ZXIgZGVmaW5pdGlvbi4gKi8KPj4gLSNkZWZp bmUgQlhUX0JMQ19QV01fQ1RMMQkJCTB4QzgyNTAKPj4gKyNkZWZpbmUgX0JYVF9CTENfUFdNX0NU TDEJCQkweEM4MjUwCj4+ICAjZGVmaW5lICAgQlhUX0JMQ19QV01fRU5BQkxFCQkJKDEgPDwgMzEp Cj4+ICAjZGVmaW5lICAgQlhUX0JMQ19QV01fUE9MQVJJVFkJCQkoMSA8PCAyOSkKPj4gLSNkZWZp bmUgQlhUX0JMQ19QV01fRlJFUTEJCQkweEM4MjU0Cj4+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0RV VFkxCQkJMHhDODI1OAo+PiAtCj4+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0NUTDIJCQkweEM4MzUw Cj4+IC0jZGVmaW5lIEJYVF9CTENfUFdNX0ZSRVEyCQkJMHhDODM1NAo+PiAtI2RlZmluZSBCWFRf QkxDX1BXTV9EVVRZMgkJCTB4QzgzNTgKPj4gLQo+PiArI2RlZmluZSBfQlhUX0JMQ19QV01fRlJF UTEJCQkweEM4MjU0Cj4+ICsjZGVmaW5lIF9CWFRfQkxDX1BXTV9EVVRZMQkJCTB4QzgyNTgKPj4g Kwo+PiArI2RlZmluZSBfQlhUX0JMQ19QV01fQ1RMMgkJCTB4QzgzNTAKPj4gKyNkZWZpbmUgX0JY VF9CTENfUFdNX0ZSRVEyCQkJMHhDODM1NAo+PiArI2RlZmluZSBfQlhUX0JMQ19QV01fRFVUWTIJ CQkweEM4MzU4Cj4+ICsKPj4gKyNkZWZpbmUgQlhUX0JMQ19QV01fQ1RMKGNvbnRyb2xsZXIpICAg IF9QSVBFKGNvbnRyb2xsZXIsIFwKPj4gKwkJCQkJX0JYVF9CTENfUFdNX0NUTDEsIF9CWFRfQkxD X1BXTV9DVEwyKQo+PiArI2RlZmluZSBCWFRfQkxDX1BXTV9GUkVRKGNvbnRyb2xsZXIpICAgX1BJ UEUoY29udHJvbGxlciwgXAo+PiArCQkJCQlfQlhUX0JMQ19QV01fRlJFUTEsIF9CWFRfQkxDX1BX TV9GUkVRMikKPj4gKyNkZWZpbmUgQlhUX0JMQ19QV01fRFVUWShjb250cm9sbGVyKSAgIF9QSVBF KGNvbnRyb2xsZXIsIFwKPj4gKwkJCQkJX0JYVF9CTENfUFdNX0RVVFkxLCBfQlhUX0JMQ19QV01f RFVUWTIpCj4+ICAKPj4gICNkZWZpbmUgUENIX0dUQ19DVEwJCTB4ZTcwMDAKPj4gICNkZWZpbmUg ICBQQ0hfR1RDX0VOQUJMRQkoMSA8PCAzMSkKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4g aW5kZXggNDdiYzcyOS4uZWU5ZWIyYiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK Pj4gQEAgLTE4Miw3ICsxODIsOSBAQCBzdHJ1Y3QgaW50ZWxfcGFuZWwgewo+PiAgCQlib29sIGVu YWJsZWQ7Cj4+ICAJCWJvb2wgY29tYmluYXRpb25fbW9kZTsJLyogZ2VuIDIvNCBvbmx5ICovCj4+ ICAJCWJvb2wgYWN0aXZlX2xvd19wd207Cj4+ICsJCWJvb2wgdXRpbF9waW5fYWN0aXZlX2xvdzsJ LyogYnh0KyAqLwo+PiAgCQlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqZGV2aWNlOwo+PiArCQl1 OCBjb250cm9sbGVyOwkJLyogYnh0KyBvbmx5ICovCj4+ICAJfSBiYWNrbGlnaHQ7Cj4+ICAKPj4g IAl2b2lkICgqYmFja2xpZ2h0X3Bvd2VyKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICosIGJvb2wg ZW5hYmxlKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVs LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+IGluZGV4IDdkODM1Mjcu LjIzODQ3ZjIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVs LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+PiBAQCAtMzIs NyArMzIsMTAgQEAKPj4gIAo+PiAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+PiAgI2luY2x1 ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+ PiAgI2luY2x1ZGUgImludGVsX2Rydi5oIgo+PiArI2luY2x1ZGUgImludGVsX2RzaS5oIgo+PiAr I2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+ICAKPj4gIHZvaWQKPj4gIGludGVsX2ZpeGVkX3BhbmVs X21vZGUoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUsCj4+IEBAIC01 MzksOSArNTQyLDEwIEBAIHN0YXRpYyB1MzIgdmx2X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAgc3RhdGljIHUzMiBieHRfZ2V0X2JhY2tsaWdodChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4+ICsJc3RydWN0IGludGVsX3BhbmVs ICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICAKPj4gLQlyZXR1cm4gSTkxNV9SRUFE KEJYVF9CTENfUFdNX0RVVFkxKTsKPj4gKwlyZXR1cm4gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0RV VFkocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSk7Cj4+ICB9Cj4+ICAKPj4gIHN0YXRpYyB1 MzIgaW50ZWxfcGFuZWxfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCj4+IEBAIC02MjgsOCArNjMyLDkgQEAgc3RhdGljIHZvaWQgYnh0X3NldF9iYWNrbGln aHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4+ICB7Cj4+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gKwlz dHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4+ICAKPj4gLQlJ OTE1X1dSSVRFKEJYVF9CTENfUFdNX0RVVFkxLCBsZXZlbCk7Cj4+ICsJSTkxNV9XUklURShCWFRf QkxDX1BXTV9EVVRZKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksIGxldmVsKTsKPj4gIH0K Pj4gIAo+PiAgc3RhdGljIHZvaWQKPj4gQEAgLTc2MSwxMiArNzY2LDIwIEBAIHN0YXRpYyB2b2lk IGJ4dF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip Cj4+ICB7Cj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7 Cj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPj4gLQl1MzIgdG1wOwo+PiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVj dG9yLT5wYW5lbDsKPj4gKwl1MzIgdG1wLCB2YWw7Cj4+ICAKPj4gIAlpbnRlbF9wYW5lbF9hY3R1 YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgMCk7Cj4+ICAKPj4gLQl0bXAgPSBJOTE1X1JF QUQoQlhUX0JMQ19QV01fQ1RMMSk7Cj4+IC0JSTkxNV9XUklURShCWFRfQkxDX1BXTV9DVEwxLCB0 bXAgJiB+QlhUX0JMQ19QV01fRU5BQkxFKTsKPj4gKwl0bXAgPSBJOTE1X1JFQUQoQlhUX0JMQ19Q V01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+PiArCUk5MTVfV1JJVEUoQlhU X0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksCj4+ICsJCQl0bXAgJiB+ QlhUX0JMQ19QV01fRU5BQkxFKTsKPj4gKwo+PiArCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRy b2xsZXIgPT0gMSkgewo+PiArCQl2YWwgPSBJOTE1X1JFQUQoVVRJTF9QSU5fQ1RMKTsKPj4gKwkJ dmFsICY9IH5VVElMX1BJTl9FTkFCTEU7Cj4+ICsJCUk5MTVfV1JJVEUoVVRJTF9QSU5fQ1RMLCB2 YWwpOwo+PiArCX0KPj4gIH0KPj4gIAo+PiAgdm9pZCBpbnRlbF9wYW5lbF9kaXNhYmxlX2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+IEBAIC05ODAsMTYgKzk5 MywzOSBAQCBzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rv ci0+YmFzZS5kZXY7Cj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPj4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rv ci0+cGFuZWw7Cj4+IC0JdTMyIHB3bV9jdGw7Cj4+ICsJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9n ZXRfcGlwZV9mcm9tX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+PiArCXUzMiBwd21fY3RsLCB2YWw7 Cj4+ICAKPj4gLQlwd21fY3RsID0gSTkxNV9SRUFEKEJYVF9CTENfUFdNX0NUTDEpOwo+PiArCS8q IFRvIHVzZSAybmQgc2V0IG9mIGJhY2tsaWdodCByZWdpc3RlcnMsIHV0aWxpdHkgcGluIGhhcyB0 byBiZQo+PiArCSAqIGVuYWJsZWQgd2l0aCBQV00gbW9kZS4KPj4gKwkgKiBUaGUgZmllbGQgc2hv dWxkIG9ubHkgYmUgY2hhbmdlZCB3aGVuIHRoZSB1dGlsaXR5IHBpbiBpcyBkaXNhYmxlZAo+PiAr CSAqLwo+PiArCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIgPT0gMSkgewo+PiArCQl2 YWwgPSBJOTE1X1JFQUQoVVRJTF9QSU5fQ1RMKTsKPj4gKwkJaWYgKHZhbCAmIFVUSUxfUElOX0VO QUJMRSkgewo+PiArCQkJRFJNX0RFQlVHX0tNUygidXRpbCBwaW4gYWxyZWFkeSBlbmFibGVkXG4i KTsKPj4gKwkJCXZhbCAmPSB+VVRJTF9QSU5fRU5BQkxFOwo+PiArCQkJSTkxNV9XUklURShVVElM X1BJTl9DVEwsIHZhbCk7Cj4+ICsJCX0KPj4gKwkJLyogbWFzayBvdXQgVVRJTF9QSU5fUElQRSBh bmQgVVRJTF9QSU5fTU9ERSAqLwo+PiArCQl2YWwgJj0gfihVVElMX1BJTl9QSVBFX01BU0sgfCBV VElMX1BJTl9NT0RFX01BU0spOwo+PiArCQlJOTE1X1dSSVRFKFVUSUxfUElOX0NUTCwgdmFsKTsK Pj4gKwkJaWYgKHBhbmVsLT5iYWNrbGlnaHQudXRpbF9waW5fYWN0aXZlX2xvdykKPj4gKwkJCXZh bCB8PSBVVElMX1BJTl9QT0xBUklUWTsKPj4gKwkJSTkxNV9XUklURShVVElMX1BJTl9DVEwsIHZh bCB8IFVUSUxfUElOX1BJUEUocGlwZSkgfAo+PiArCQkJCVVUSUxfUElOX01PREVfUFdNIHwgVVRJ TF9QSU5fRU5BQkxFKTsKPj4gKwl9Cj4+ICsKPj4gKwlwd21fY3RsID0gSTkxNV9SRUFEKEJYVF9C TENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKPj4gIAlpZiAocHdtX2N0 bCAmIEJYVF9CTENfUFdNX0VOQUJMRSkgewo+PiAgCQlEUk1fREVCVUdfS01TKCJiYWNrbGlnaHQg YWxyZWFkeSBlbmFibGVkXG4iKTsKPj4gIAkJcHdtX2N0bCAmPSB+QlhUX0JMQ19QV01fRU5BQkxF Owo+PiAtCQlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTDEsIHB3bV9jdGwpOwo+PiArCQlJOTE1 X1dSSVRFKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAo+PiAr CQkJCXB3bV9jdGwpOwo+PiAgCX0KPj4gIAo+PiAtCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fRlJF UTEsIHBhbmVsLT5iYWNrbGlnaHQubWF4KTsKPj4gKwlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0ZS RVEocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwKPj4gKwkJCXBhbmVsLT5iYWNrbGlnaHQu bWF4KTsKPj4gIAo+PiAgCWludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29ubmVj dG9yLCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKPj4gIAo+PiBAQCAtOTk3LDkgKzEwMzMsMTAg QEAgc3RhdGljIHZvaWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+PiAgCWlmIChwYW5lbC0+YmFja2xpZ2h0LmFjdGl2ZV9sb3dfcHdtKQo+ PiAgCQlwd21fY3RsIHw9IEJYVF9CTENfUFdNX1BPTEFSSVRZOwo+PiAgCj4+IC0JSTkxNV9XUklU RShCWFRfQkxDX1BXTV9DVEwxLCBwd21fY3RsKTsKPj4gLQlQT1NUSU5HX1JFQUQoQlhUX0JMQ19Q V01fQ1RMMSk7Cj4+IC0JSTkxNV9XUklURShCWFRfQkxDX1BXTV9DVEwxLCBwd21fY3RsIHwgQlhU X0JMQ19QV01fRU5BQkxFKTsKPj4gKwlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+ YmFja2xpZ2h0LmNvbnRyb2xsZXIpLCBwd21fY3RsKTsKPj4gKwlQT1NUSU5HX1JFQUQoQlhUX0JM Q19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+PiArCUk5MTVfV1JJVEUo QlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlciksCj4+ICsJCQlwd21f Y3RsIHwgQlhUX0JMQ19QV01fRU5BQkxFKTsKPj4gIH0KPj4gIAo+PiAgdm9pZCBpbnRlbF9wYW5l bF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4g QEAgLTEwMDgsNiArMTA0NSw5IEBAIHZvaWQgaW50ZWxfcGFuZWxfZW5hYmxlX2JhY2tsaWdodChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gIAlzdHJ1Y3QgaW50ZWxfcGFu ZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9nZXRfcGlwZV9mcm9tX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+PiArCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IE5VTEw7Cj4+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsK Pj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7Cj4+ICAKPj4gIAlpZiAo IXBhbmVsLT5iYWNrbGlnaHQucHJlc2VudCkKPj4gIAkJcmV0dXJuOwo+PiBAQCAtMTAyNyw3ICsx MDY3LDE4IEBAIHZvaWQgaW50ZWxfcGFuZWxfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCj4+ICAJCQkJCQkgcGFuZWwtPmJhY2tsaWdodC5kZXZpY2Ut PnByb3BzLm1heF9icmlnaHRuZXNzKTsKPj4gIAl9Cj4+ICAKPj4gLQlkZXZfcHJpdi0+ZGlzcGxh eS5lbmFibGVfYmFja2xpZ2h0KGNvbm5lY3Rvcik7Cj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShj cnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKPj4gKwkJZm9yX2VhY2hf ZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewo+PiArCQkJaWYgKGVuY29kZXIt PnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkKPj4gKwkJCQlpbnRlbF9kc2kgPSBlbmNfdG9faW50 ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPj4gKwkJfQo+PiArCX0KPj4gKwo+PiArCWlmIChJU19C Uk9YVE9OKGRldikgJiYgaW50ZWxfZHNpLT5wYW5lbC0+ZnVuY3MtPmVuYWJsZSkKPj4gKwkJaW50 ZWxfZHNpLT5wYW5lbC0+ZnVuY3MtPmVuYWJsZShpbnRlbF9kc2ktPnBhbmVsKTsKPj4gKwllbHNl Cj4+ICsJCWRldl9wcml2LT5kaXNwbGF5LmVuYWJsZV9iYWNrbGlnaHQoY29ubmVjdG9yKTsKPj4g Kwo+Cj4gVGhpcyBpcyBiYWNrd2FyZHMuIFRoZSBEU0kgY29kZSBzaG91bGQgY2FsbCBpbnRlbF9w YW5lbF9lbmFibGVfYmFja2xpZ2h0Cj4gYW5kIGludGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0 LCBub3QgdGhlIG90aGVyIHdheSByb3VuZC4KClRoZSBjb2RlIHNob3VsZCBhbHNvIGNhbGwgc2V0 dXAgYmFja2xpZ2h0LiBQcmVzdW1hYmx5IHRoZXJlIHdvbid0IChhdApsZWFzdCBpbml0aWFsbHkp IGJlIGEgc2V0dXAgd2l0aCBib3RoIGVEUCBhbmQgRFNJLgoKQlIsCkphbmkuCgo+Cj4gQlIsCj4g SmFuaS4KPgo+Cj4+ICAJcGFuZWwtPmJhY2tsaWdodC5lbmFibGVkID0gdHJ1ZTsKPj4gIAlpZiAo cGFuZWwtPmJhY2tsaWdodC5kZXZpY2UpCj4+ICAJCXBhbmVsLT5iYWNrbGlnaHQuZGV2aWNlLT5w cm9wcy5wb3dlciA9IEZCX0JMQU5LX1VOQkxBTks7Cj4+IEBAIC0xMzYyLDEwICsxNDEzLDI3IEBA IGJ4dF9zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBl bnVtIHBpcGUgdW51c2VkKQo+PiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVj dG9yLT5wYW5lbDsKPj4gIAl1MzIgcHdtX2N0bCwgdmFsOwo+PiAgCj4+IC0JcHdtX2N0bCA9IEk5 MTVfUkVBRChCWFRfQkxDX1BXTV9DVEwxKTsKPj4gLQlwYW5lbC0+YmFja2xpZ2h0LmFjdGl2ZV9s b3dfcHdtID0gcHdtX2N0bCAmIEJYVF9CTENfUFdNX1BPTEFSSVRZOwo+PiArCS8qIEZvciBCWFQg aGFyZCBjb2RpbmcgdGhlIEJhY2tsaWdodCBjb250cm9sbGVyIHRvIDAuCj4+ICsJICogVG9EbyA6 IFJlYWQgdGhlIGNvbnRyb2xsZXIgdmFsdWUgZnJvbSBWQlQgYW5kIGdlbmVyYWxpemUKPj4gKwkg Ki8KPj4gKwlwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIgPSAwOwo+PiArCj4+ICsJcHdtX2N0 bCA9IEk5MTVfUkVBRChCWFRfQkxDX1BXTV9DVEwocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVy KSk7Cj4+ICsKPj4gKwkvKiBLZWVwaW5nIHRoZSBjaGVjayBpZiBjb250cm9sbGVyIDEgaXMgdG8g YmUgcHJvZ3JhbW1lZC4gCj4+ICsJICogVGhpcyB3aWxsIGNvbWUgaW50byBhZmZlY3Qgb25jZSB0 aGUgVkJUIHBhcnNpbmcKPj4gKwkgKiBpcyBmaXhlZCBmb3IgY29udHJvbGxlciBzZWxlY3Rpb24s IGFuZCBjb250cm9sbGVyIDEgaXMgdXNlZAo+PiArCSAqIGZvciBhIHBydGljdWxhciBkaXNwbGF5 IGNvbmZpZ3VyYXRpb24uCj4+ICsJICovIAo+PiArCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbnRy b2xsZXIgPT0gMSkgewo+PiArCQl2YWwgPSBJOTE1X1JFQUQoVVRJTF9QSU5fQ1RMKTsKPj4gKwkJ cGFuZWwtPmJhY2tsaWdodC51dGlsX3Bpbl9hY3RpdmVfbG93ID0KPj4gKwkJCXZhbCAmIFVUSUxf UElOX1BPTEFSSVRZOwo+PiArCX0KPj4gIAo+PiAtCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gSTkx NV9SRUFEKEJYVF9CTENfUFdNX0ZSRVExKTsKPj4gKwlwYW5lbC0+YmFja2xpZ2h0LmFjdGl2ZV9s b3dfcHdtID0gcHdtX2N0bCAmIEJYVF9CTENfUFdNX1BPTEFSSVRZOwo+PiArCXBhbmVsLT5iYWNr bGlnaHQubWF4ID0gSTkxNV9SRUFEKAo+PiArCQkJCUJYVF9CTENfUFdNX0ZSRVEocGFuZWwtPmJh Y2tsaWdodC5jb250cm9sbGVyKSk7Cj4+ICAJaWYgKCFwYW5lbC0+YmFja2xpZ2h0Lm1heCkKPj4g IAkJcmV0dXJuIC1FTk9ERVY7Cj4+ICAKPj4gLS0gCj4+IDEuNy45LjUKPj4KPj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPgo+IC0tIAo+IEph bmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0gCkphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=