From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v2] drm/i915/bxt: Fix DSI HW state readout Date: Thu, 24 Mar 2016 12:02:52 +0200 Message-ID: <1458813772.3752.21.camel@intel.com> References: <1458767983-6473-1-git-send-email-imre.deak@intel.com> <1458770210-16383-1-git-send-email-imre.deak@intel.com> <87poukdyoh.fsf@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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id BEA246E5C3 for ; Thu, 24 Mar 2016 10:03:19 +0000 (UTC) In-Reply-To: <87poukdyoh.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: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTYtMDMtMjQgYXQgMTE6MTUgKzAyMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+IE9u IFdlZCwgMjMgTWFyIDIwMTYsIEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4gd3JvdGU6 Cj4gPiBDdXJyZW50bHkgdGhlIG1hY2hpbmUgaGFuZ3MgZHVyaW5nIGJvb3Rpbmcgd2hpbGUgYWNj ZXNzaW5nIHRoZQo+ID4gQlhUX01JUElfUE9SVF9DVFJMIHJlZ2lzdGVyIGR1cmluZyBwaXBlIEhX IHN0YXRlIHJlYWRvdXQuIEFmdGVyCj4gPiBzb21lCj4gPiBleHBlcmltZW50YXRpb24gSSBmb3Vu ZCB0aGF0IHRoZSBoYW5nIGlzIGNhdXNlZCBieSB0aGUgRFNJIFBMTAo+ID4gYmVpbmcKPiA+IGRp c2FibGVkLCBvciBpdCBiZWluZyBlbmFibGVkIGJ1dCB3aXRoIGFuIGluY29ycmVjdCBkaXZpZGVy Cj4gPiBjb25maWd1cmF0aW9uLiBFbmFibGluZyB0aGUgUExMIGdvdCByaWQgb2YgdGhlIGJvb3Qg cHJvYmxlbSwgc28gZml4Cj4gPiB0aGlzIGJ5IGNoZWNraW5nIHRoZSBQTEwgZW5hYmxlZCBzdGF0 ZS9jb25maWd1cmF0aW9uIGJlZm9yZQo+ID4gYXR0ZW1wdGluZwo+ID4gdG8gcmVhZCBvdXQgdGhl IEhXIHN0YXRlLgo+ID4gCj4gPiBUaGUgRFNJX1BMTF9FTkFCTEUgcmVnaXN0ZXIgaXMgaW4gdGhl IGFsd2F5cy1vbiBwb3dlciB3ZWxsLCB3aGlsZQo+ID4gdGhlCj4gPiBCWFRfRFNJX1BMTF9DVEwg aXMgaW4gcG93ZXIgd2VsbCAwLiBUaGlzIGlzbid0IGV4YWN0bHkgbWF0Y2hlZCBieQo+ID4gdGhl Cj4gPiB0cmFuc2NvZGVyIHBvd2VyIGRvbWFpbiwgYnV0IHdoYXQgd2UgcmVhbGx5IG5lZWQgaXMg anVzdCBhIHJ1bnRpbWUKPiA+IFBNCj4gPiByZWZlcmVuY2UsIHdoaWNoIGlzIHByb3ZpZGVkIGJ5 IGFueSBwb3dlciBkb21haW4uCj4gPiAKPiA+IFZpbGxlIGFsc28gZm91bmQgdGhpcyBkZXBlbmRl bmN5IHNwZWNpZmllZCBpbiBCU3BlYywgc28gSSBhZGRlZCBhCj4gPiByZWZlcmVuY2UgdG8gdGhh dCB0b28uCj4gPiAKPiA+IHYyOgo+ID4gLSBNYWtlIHN1cmUgd2UgaG9sZCBhIHBvd2VyIHJlZmVy ZW5jZSB3aGlsZSBhY2Nlc3NpbmcgdGhlIFBMTAo+ID4gcmVnaXN0ZXJzLgo+ID4gCj4gPiBDQzog U2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+ID4gQ0M6IFVtYSBT aGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+Cj4gPiBDQzogSmFuaSBOaWt1bGEgPGphbmku bmlrdWxhQGludGVsLmNvbT4KPiA+IEZpeGVzOiBjNmM3OTRhMmZjNWUgKCJkcm0vaTkxNS9ieHQ6 IEluaXRpYWxpemUgTUlQSSBEU0kgZm9yIEJYVCIpCj4gCj4gSSBmaWd1cmVkIHRoaXMgbWlnaHQg YmxvdyBzb21ldGhpbmcgdXAgbm93LCBidXQgdGhlbiBhZ2FpbiB3ZSBuZWVkZWQKPiB0bwo+IGRv IGl0IHRvIGZpbmQgb3V0IGFsbCB0aGUgd2F5cyBpdCB3b3VsZCBibG93IHVwLiBBcG9sb2dpZXMg YW5kCj4gdGhhbmtzLiA7KQo+IAo+ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRl YWtAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmjCoMKgwqDCoMKgwqB8wqDCoDIgKysKPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgMTMgKysrKysrKysrKysrKwo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuY8KgwqDCoMKgwqB8wqDCoDkgKysrKysrKysrCj4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaS5owqDCoMKgwqDCoHzCoMKgMSArCj4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaV9wbGwuYyB8IDM3Cj4gPiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiA+IMKgNSBmaWxlcyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspCj4gPiAK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IGluZGV4IGYzYmE0M2MuLmM4MzljZTkg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBAQCAtNzgxMSw5ICs3ODExLDEx IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ID4gwqAjZGVmaW5lwqDCoEJYVF9EU0lD XzE2WF9CWTIJCSgxIDw8IDEwKQo+ID4gwqAjZGVmaW5lwqDCoEJYVF9EU0lDXzE2WF9CWTMJCSgy IDw8IDEwKQo+ID4gwqAjZGVmaW5lwqDCoEJYVF9EU0lDXzE2WF9CWTQJCSgzIDw8IDEwKQo+ID4g KyNkZWZpbmXCoMKgQlhUX0RTSUNfMTZYX01BU0sJCSgzIDw8IDEwKQo+ID4gwqAjZGVmaW5lwqDC oEJYVF9EU0lBXzE2WF9CWTIJCSgxIDw8IDgpCj4gPiDCoCNkZWZpbmXCoMKgQlhUX0RTSUFfMTZY X0JZMwkJKDIgPDwgOCkKPiA+IMKgI2RlZmluZcKgwqBCWFRfRFNJQV8xNlhfQlk0CQkoMyA8PCA4 KQo+ID4gKyNkZWZpbmXCoMKgQlhUX0RTSUFfMTZYX01BU0sJCSgzIDw8IDgpCj4gPiDCoCNkZWZp bmXCoMKgQlhUX0RTSV9GUkVRX1NFTF9TSElGVAkJOAo+ID4gwqAjZGVmaW5lwqDCoEJYVF9EU0lf RlJFUV9TRUxfTUFTSwkJKDB4RiA8PAo+ID4gQlhUX0RTSV9GUkVRX1NFTF9TSElGVCkKPiA+IMKg Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggMDA5YjAz Yi4uNmZkOTRjNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiBAQCAtMzYsNiArMzYsNyBAQAo+ID4gwqAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4gPiDCoCNp bmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KPiA+IMKgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gPiAr I2luY2x1ZGUgImludGVsX2RzaS5oIgo+ID4gwqAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgo+ID4g wqAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KPiA+IMKgI2luY2x1ZGUgPGRybS9kcm1fYXRv bWljX2hlbHBlci5oPgo+ID4gQEAgLTk4NTIsMTAgKzk4NTMsMTIgQEAgc3RhdGljIGJvb2wKPiA+ IGJ4dF9nZXRfZHNpX3RyYW5zY29kZXJfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4g PiDCoAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiA+IMKg CWVudW0gcG9ydCBwb3J0Owo+ID4gwqAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+ ID4gKwlib29sIHBsbF9lbmFibGVkOwo+ID4gwqAJdTMyIHRtcDsKPiA+IMKgCj4gPiDCoAlwaXBl X2NvbmZpZy0+aGFzX2RzaV9lbmNvZGVyID0gZmFsc2U7Cj4gPiDCoAo+ID4gKwlwbGxfZW5hYmxl ZCA9IGZhbHNlOwo+IAo+IEl0IHNlZW1zIHRvIG1lIHlvdSBjb3VsZCBqdXN0IGJhaWwgb3V0IGVh cmx5IGhlcmUgaWYgdGhlIGRzaSBwbGwgaXMKPiBkaXNhYmxlZC4KPgo+IEknbSBndWVzc2luZyB5 b3UgcHV0IHRoZSBjaGVjayBpbiB0aGUgbG9vcCBiZWNhdXNlIG9mIHRoZSBwb3dlcgo+IGRvbWFp biByZWZlcmVuY2UuCgpZZXMuCgo+IFR3byB0aG91Z2h0cyBvbiB0aGF0Ogo+IAo+IGEpIEJYVF9E U0lfUExMX0VOQUJMRSBpcyBpbiBhbHdheXMgb24gcG93ZXIuCgpXZWxsLCB0aGF0IG1lYW5zIGFs d2F5cy1vbiwgd2hlbmV2ZXIgdGhlIFBDSSBkZXZpY2UgaXMgb24sIHRoYXQgaXMgd2UKc3RpbGwg bmVlZCB0byBob2xkIGEgcnVudGltZSBQTSByZWZlcmVuY2UsIHdoaWNoIGlzIHByb3ZpZGVkIGJ5 IGFueQpkaXNwbGF5IHBvd2VyIGRvbWFpbiByZWZlcmVuY2UuCgo+IElmIHlvdSBkcm9wcGVkIHRo ZSBwYXJhbm9pYQo+IGluIGJ4dF9kc2lfcGxsX2lzX2VuYWJsZWQoKSBhYm91dCB2YWxpZCBCWFRf RFNJX1BMTF9DVEwgdmFsdWVzLCB5b3UKPiBjb3VsZCBzaW1wbGlmeSBjb2RlIGhlcmUgYW5kIGlu IGludGVsX2RzaV9nZXRfaHdfc3RhdGUoKS4KCkkgdGhpbmsgaXQncyBiZXR0ZXIgdG8gY2hlY2sg dGhlIGRpdmlkZXJzIHRvby4gSWYgdGhlIGRpdmlkZXJzIGFyZQppbmNvcnJlY3QgdGhhdCBtYWNo aW5lIHdpbGwgaGFuZyBldmVuIHRob3VnaCB0aGUgUExMIGlzIGVuYWJsZWQuIFZpbGxlCnRvbGQg bWUgdGhhdCBoZSBzYXcgYSBzaW1pbGFyIG1pc2NvbmZpZ3VyYXRpb24gYnkgQklPUyBvbiBDSFYv VkxWLCBzbwppdCdzIG5vdCB1bmltYWdpbmFibGUgdGhhdCBpdCBjb3VsZCBhbHNvIGhhcHBlbiBv biBCWFQuwqAKCj4gYikgQlhUX0RTSV9QTExfQ1RMIGlzIGluIFBHMC4gSGVyZSwgeW91IGltcGxp Y2l0bHkgdHJ1c3QgdGhlCj4gdHJhbnNjb2Rlcgo+IHBvd2VyIGRvbWFpbiB0byBtYXRjaCB0aGF0 LiBJbiBpbnRlbF9kc2lfZ2V0X2h3X3N0YXRlKCkgeW91Cj4gaW1wbGljaXRseQo+IHRydXN0IHRo ZSBEU0kgcG9ydCBwb3dlciBkb21haW4gdG8gbWF0Y2ggdGhhdC4gVGhleSBib3RoIGRvLCBidXQg dGhpcwo+IHNlZW1zIGEgc29tZXdoYXQgY29pbmNpZGVudGFsIGNob2ljZS4KCkknbSBhY3R1YWxs eSBub3Qgc3VyZSBpZiBwb3dlciB3ZWxsIDAgaXMgc2ltcGx5IHRoZSBzYW1lIGFzIHRoZSBhbHdh eXMtCm9uIHdlbGwsIHRoZXJlIGlzIG5vIHNlcGFyYXRlIGFsd2F5cy1vbiB3ZWxsIHNob3duIGlu IEJTcGVjICJCcm94dG9uCkRpc3BsYXkgQ29ubmVjdGlvbnMiLiBJbiBhbnkgY2FzZSB3ZSBkb24n dCBoYW5kbGUgZWl0aGVyIG9mIMKgdGhlc2UKd2VsbHMgbWFudWFsbHkgKG9uLWRlbWFuZCksIGl0 J3Mgb25seSBkdXJpbmcgcnVudGltZSBzdXNwZW5kIHdoZW4gdGhleQphcmUgcG93ZXJlZCBvZmYu IFNvIHRvIGtlZXAgdGhlbSBvbiB3ZSBuZWVkIGEgcnVudGltZSBQTSByZWZlcmVuY2UgYW5kCnRo YXQgaXMgZ3VhcmFudGVlZCB0byBiZSBwcm92aWRlZCBieSBhbnkgcG93ZXIgZG9tYWluIHJlZi7C oAoKPiA+IMKgCWZvcl9lYWNoX3BvcnRfbWFza2VkKHBvcnQsIEJJVChQT1JUX0EpIHwgQklUKFBP UlRfQykpIHsKPiA+IMKgCQlpZiAocG9ydCA9PSBQT1JUX0EpCj4gPiDCoAkJCWNwdV90cmFuc2Nv ZGVyID0gVFJBTlNDT0RFUl9EU0lfQTsKPiA+IEBAIC05ODY3LDYgKzk4NzAsMTYgQEAgc3RhdGlj IGJvb2wKPiA+IGJ4dF9nZXRfZHNpX3RyYW5zY29kZXJfc3RhdGUoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gPiDCoAkJCWNvbnRpbnVlOwo+ID4gwqAJCSpwb3dlcl9kb21haW5fbWFzayB8PSBC SVQocG93ZXJfZG9tYWluKTsKPiA+IMKgCj4gPiArCQkvKgo+ID4gKwkJwqAqIFRoZSBQTEwgbmVl ZHMgdG8gYmUgZW5hYmxlZCB3aXRoIGEgdmFsaWQKPiA+IGRpdmlkZXIKPiA+ICsJCcKgKiBjb25m aWd1cmF0aW9uLCBvdGhlcndpc2UgYWNjZXNzaW5nIERTSQo+ID4gcmVnaXN0ZXJzIHdpbGwgaGFu Zwo+ID4gKwkJwqAqIHRoZSBtYWNoaW5lLiBTZWUgQlNwZWMgTm9ydGggRGlzcGxheSBFbmdpbmUK PiA+ICsJCcKgKiByZWdpc3RlcnMvTUlQSVtCWFRdLgo+ID4gKwkJwqAqLwo+ID4gKwkJcGxsX2Vu YWJsZWQgPSBwbGxfZW5hYmxlZCB8fAo+ID4gaW50ZWxfZHNpX3BsbF9pc19lbmFibGVkKGRldl9w cml2KTsKPiA+ICsJCWlmICghcGxsX2VuYWJsZWQpCj4gPiArCQkJYnJlYWs7Cj4gPiArCj4gCj4g SSBndWVzcyBpZiB3ZSB3YW50IHRvIGtlZXAgdGhlIHBhcmFub2lhIGFuZCB3ZSBhcmUgaGFwcHkg d2l0aCBob3cgdGhlCj4gcG93ZXIgZG9tYWluIHJlZmVyZW5jZXMgbWFwIHRvIHRoZSBwb3dlciB3 ZWxsIG9mIEJYVF9EU0lfUExMX0NUTCwgdGhlCj4gc2ltcGxlc3QgeW91IGNvdWxkIGRvIGlzIHRo cm93IGF3YXkgdGhlIGxvY2FsIHZhcmlhYmxlIGFuZCBqdXN0IGRvCj4gdGhpczoKPiAKPiAJCWlm ICghaW50ZWxfZHNpX3BsbF9pc19lbmFibGVkKGRldl9wcml2KSkKPiAJCQljb250aW51ZTsKPiAK PiBUaGlzIHBvdGVudGlhbGx5IGxlYWRzIHRvIGFuIGV4dHJhIGxvb3AgaGVyZSwgYnV0IGF0IGxl YXN0IHRoZSBjb2RlCj4gZ2V0cwo+IHNpbXBsZXIgYW5kIGVhc2llciB0byBncmFzcC4KClllYSwg aXQgd2lsbCByZXN1bHQgaW4gYW4gZXh0cmEgSFcgYWNjZXNzLCBidXQgSSBjYW4gc2ltcGxpZnkg dGhpbmdzIGFzCnlvdSBzdWdnZXN0ZWQuCgo+ID4gwqAJCS8qIFhYWDogdGhpcyB3b3JrcyBmb3Ig dmlkZW8gbW9kZSBvbmx5ICovCj4gPiDCoAkJdG1wID0gSTkxNV9SRUFEKEJYVF9NSVBJX1BPUlRf Q1RSTChwb3J0KSk7Cj4gPiDCoAkJaWYgKCEodG1wICYgRFBJX0VOQUJMRSkpCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiA+IGluZGV4IDk2ZWEzZjcuLjBkZTc0ZTEgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiA+IEBAIC02ODQsNiArNjg0LDE0IEBAIHN0YXRp YyBib29sIGludGVsX2RzaV9nZXRfaHdfc3RhdGUoc3RydWN0Cj4gPiBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ID4gwqAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRl dl9wcml2LAo+ID4gcG93ZXJfZG9tYWluKSkKPiA+IMKgCQlyZXR1cm4gZmFsc2U7Cj4gPiDCoAo+ ID4gKwkvKgo+ID4gKwnCoCogT24gQnJveHRvbiB0aGUgUExMIG5lZWRzIHRvIGJlIGVuYWJsZWQg d2l0aCBhIHZhbGlkCj4gPiBkaXZpZGVyCj4gPiArCcKgKiBjb25maWd1cmF0aW9uLCBvdGhlcndp c2UgYWNjZXNzaW5nIERTSSByZWdpc3RlcnMgd2lsbAo+ID4gaGFuZyB0aGUKPiA+ICsJwqAqIG1h Y2hpbmUuIFNlZSBCU3BlYyBOb3J0aCBEaXNwbGF5IEVuZ2luZQo+ID4gcmVnaXN0ZXJzL01JUElb QlhUXS4KPiA+ICsJwqAqLwo+ID4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikgJiYKPiA+ICFp bnRlbF9kc2lfcGxsX2lzX2VuYWJsZWQoZGV2X3ByaXYpKQo+ID4gKwkJZ290byBvdXRfcHV0X3Bv d2VyOwo+ID4gKwo+ID4gwqAJLyogWFhYOiB0aGlzIG9ubHkgd29ya3MgZm9yIG9uZSBEU0kgb3V0 cHV0ICovCj4gPiDCoAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7 Cj4gPiDCoAkJaTkxNV9yZWdfdCBjdHJsX3JlZyA9IElTX0JST1hUT04oZGV2KSA/Cj4gPiBAQCAt NzI2LDYgKzczNCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RzaV9nZXRfaHdfc3RhdGUoc3RydWN0 Cj4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gwqAJCWJyZWFrOwo+ID4gwqAJfQo+ID4g wqAKPiA+ICtvdXRfcHV0X3Bvd2VyOgo+ID4gwqAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2 X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gPiDCoAo+ID4gwqAJcmV0dXJuIGFjdGl2ZTsKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+ID4gaW5kZXggZTU4MmVmOC4uZWM1OGVhZCAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+ID4gQEAgLTEyNiw2ICsxMjYsNyBAQCBz dGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kc2kKPiA+ICplbmNfdG9faW50ZWxfZHNpKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+IMKgCXJldHVybiBjb250YWluZXJfb2YoZW5jb2Rl ciwgc3RydWN0IGludGVsX2RzaSwgYmFzZS5iYXNlKTsKPiA+IMKgfQo+ID4gwqAKPiA+ICtib29s IGludGVsX2RzaV9wbGxfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ID4gwqBleHRlcm4gdm9pZCBpbnRlbF9lbmFibGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiDCoGV4dGVybiB2b2lkIGludGVsX2Rpc2FibGVfZHNpX3Bs bChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiDCoGV4dGVybiB1MzIgaW50ZWxf ZHNpX2dldF9wY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQKPiA+IHBpcGVf YnBwKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxs LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCj4gPiBpbmRleCBl M2UzNDNjLi5lNWIwNjI1IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpX3BsbC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxs LmMKPiA+IEBAIC0xOTIsNiArMTkyLDMzIEBAIHN0YXRpYyB2b2lkIHZsdl9kaXNhYmxlX2RzaV9w bGwoc3RydWN0Cj4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gwqAJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gPiDCoH0KPiA+IMKgCj4gPiArc3RhdGljIGJvb2wgYnh0 X2RzaV9wbGxfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gKmRldl9wcml2 KQo+ID4gK3sKPiA+ICsJYm9vbCBlbmFibGVkOwo+ID4gKwl1MzIgdmFsOwo+ID4gKwl1MzIgbWFz azsKPiA+ICsKPiA+ICsJbWFzayA9IEJYVF9EU0lfUExMX0RPX0VOQUJMRSB8IEJYVF9EU0lfUExM X0xPQ0tFRDsKPiA+ICsJdmFsID0gSTkxNV9SRUFEKEJYVF9EU0lfUExMX0VOQUJMRSk7Cj4gPiAr CWVuYWJsZWQgPSAodmFsICYgbWFzaykgPT0gbWFzazsKPiA+ICsKPiA+ICsJaWYgKCFlbmFibGVk KQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwkvKgo+ID4gKwnCoCogQm90aCBkaXZp ZGVycyBtdXN0IGJlIHByb2dyYW1tZWQgd2l0aCB2YWxpZCB2YWx1ZXMgZXZlbgo+ID4gaWYgb25s eSBvbmUKPiA+ICsJwqAqIG9mIHRoZSBQTEwgaXMgdXNlZC4gU2VlIEJTcGVjL0Jyb3h0b24gQ2xv Y2tzLgo+ID4gKwnCoCovCj4gPiArCXZhbCA9IEk5MTVfUkVBRChCWFRfRFNJX1BMTF9DVEwpOwo+ ID4gKwlpZiAoISh2YWwgJiBCWFRfRFNJQV8xNlhfTUFTSykgfHwgISh2YWwgJgo+ID4gQlhUX0RT SUNfMTZYX01BU0spKSB7Cj4gPiArCQlEUk1fREVCVUdfRFJJVkVSKCJQTEwgaXMgZW5hYmxlZCB3 aXRoIGludmFsaWQKPiA+IGRpdmlkZXIgc2V0dGluZ3MgIgo+ID4gKwkJCQnCoCIoJTA4eClcbiIs IHZhbCk7Cj4gPiArCQllbmFibGVkID0gZmFsc2U7Cj4gPiArCX0KPiAKPiBEbyB3ZSByZWFsbHkg bmVlZCB0aGlzIGxldmVsIG9mIHBhcmFub2lhPwoKWWVzLCBiYXNlZCBvbiBteSB0ZXN0IEkgdGhp bmsgc28sIHNlZSBhYm92ZS4KCj4gPiArCj4gPiArCXJldHVybiBlbmFibGVkOwo+ID4gK30KPiA+ ICsKPiA+IMKgc3RhdGljIHZvaWQgYnh0X2Rpc2FibGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiA+IMKgewo+ID4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYtCj4gPiA+ZGV2X3ByaXZhdGU7Cj4gPiBAQCAtNDg2 LDYgKzUxMywxNiBAQCBzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2RzaV9wbGwoc3RydWN0Cj4gPiBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gwqAJRFJNX0RFQlVHX0tNUygiRFNJIFBMTCBsb2Nr ZWRcbiIpOwo+ID4gwqB9Cj4gPiDCoAo+ID4gK2Jvb2wgaW50ZWxfZHNpX3BsbF9pc19lbmFibGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICt7Cj4gPiArCWlmIChJU19C Uk9YVE9OKGRldl9wcml2KSkKPiA+ICsJCXJldHVybiBieHRfZHNpX3BsbF9pc19lbmFibGVkKGRl dl9wcml2KTsKPiA+ICsKPiA+ICsJTUlTU0lOR19DQVNFKElOVEVMX0RFVklEKGRldl9wcml2KSk7 Cj4gPiArCj4gPiArCXJldHVybiBmYWxzZTsKPiA+ICt9Cj4gPiArCj4gPiDCoHZvaWQgaW50ZWxf ZW5hYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiDCoHsKPiA+ IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==