From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH 2/7] drm/i915: Work around DISPLAY_PHY_CONTROL register corruption on CHV Date: Fri, 08 May 2015 19:03:42 +0530 Message-ID: <554CBB36.3070308@linux.intel.com> References: <1428679293-6208-1-git-send-email-ville.syrjala@linux.intel.com> <1428679293-6208-3-git-send-email-ville.syrjala@linux.intel.com> <554CB212.5090800@linux.intel.com> <20150508131913.GE18908@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 5ECB56E939 for ; Fri, 8 May 2015 06:36:51 -0700 (PDT) In-Reply-To: <20150508131913.GE18908@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?windows-1252?Q?Ville_Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiBGcmlkYXkgMDggTWF5IDIwMTUgMDY6NDkgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToK PiBPbiBGcmksIE1heSAwOCwgMjAxNSBhdCAwNjoyNDo0MlBNICswNTMwLCBEZWVwYWsgUyB3cm90 ZToKPj4KPj4gT24gRnJpZGF5IDEwIEFwcmlsIDIwMTUgMDg6NTEgUE0sIHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tIHdyb3RlOgo+Pj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4+Cj4+PiBTb21ldGltZXMgKGV4YWN0bHkgd2hlbiBp cyBhIGJpdCB1bmNsZWFyKSBESVNQTEFZX1BIWV9DT05UUk9MIGFwcGVhcnMgdG8KPj4+IGdldCBj b3JydXB0ZWQuIFRoZSB2YWx1ZXMgSSd2ZSBtYW5hZ2VkIHRvIHJlYWQgZnJvbSBpdCBzZWVtIHRv IGhhdmUgc29tZQo+Pj4gcGF0dGVybiBidXQgdmFyeSBxdWl0ZSBhIGxvdC4gVGhlIGNvcnJ1cHRp b24gZG9lc24ndCBzZWVtIHRvIGp1c3QgaGFwcGVuCj4+PiB3aGVuIHRoZSByZWdpc3RlciBpcyBh Y2Nlc3NlZCwgYnV0IGNhbiBhbHNvIGhhcHBlbiBzcG9udGFuZW9zbHkgZHVyaW5nCj4+PiBtb2Rl c2V0LiBXaGVuIHRoaXMgaGFwcGVucyBkdXJpbmcgYSBtb2Rlc2V0IHRoaW5ncyBnbyBzb3V0aCBh bmQgdGhlCj4+PiBkaXNwbGF5IGRvZXNuJ3QgbGlnaHQgdXAuCj4+Pgo+Pj4gSSd2ZSBtYW5hZ2Vk IHRvIGhpdCB0aGUgcHJvYmxlbW4gd2hlbiB0b2dnbGluZyBIRE1JIG9uIHBvcnQgRCBvbiBhbmQK Pj4+IG9mZi4gV2hlbiB0aGluZ3MgZ2V0IGNvcnJ1cHRlZCB0aGUgZGlzcGxheSBkb2Vzbid0IGxp Z2h0IHVwLCBidXQgYXMgc29vbgo+Pj4gYXMgSSBtYW51YWxseSB3cml0ZSB0aGUgY29ycmVjdCB2 YWx1ZSB0byB0aGUgcmVnaXN0ZXIgdGhlIGRpc3BsYXkgY29tZXMKPj4+IHVwLgo+Pj4KPj4+IEZp cnN0IEkgd2FzIHN1c3BpY2lvdXMgdGhhdCB3ZSBvdXJzZWx2ZXMgYWNjaWRlbnRhbGx5IG92ZXJ3 cml0ZSBpdCB3aXRoCj4+PiBnYXJiYWdlLCBidXQgZGlkbid0IGNhdGNoIGFueXRoaW5nIHdpdGgg dGhlIHJlZ19ydyB0cmFjZXBvaW50LiBBbHNvIEkKPj4+IHNwcmlua2xlZCBjaGVjayBhbGwgb3Zl ciB0aGUgbW9kZXNldCBwYXRoIHRvIHNlZSBleGFjdGx5IHdoZW4gdGhlCj4+PiBjb3JydXB0aW9u IGhhcHBlbnMsIGFuZCBlZy4gdGhlIHJlYWQgYmFjayB2YWx1ZSB3YXMgZmluZSBqdXN0IGJlZm9y ZQo+Pj4gaW50ZWxfZHBfc2V0X20oKSwgYW5kIGNvcnJ1cHRlZCBpbW1lZGlhdGVseSBhZnRlciBp dC4gSSBhbHNvIG1hZGUgbXkKPj4+IGNoZWNrIGZ1bmN0aW9uIHJlcGFpciB0aGUgcmVnaXN0ZXIg dmFsdWUgd2hlbmV2ZXIgaXQgd2FzIHdyb25nLCBhbmQgd2l0aAo+Pj4gdGhpcyBhcHByb2FjaCB0 aGUgY29ycnVwdGlvbiByZXBlYXRlZCBzZXZlcmFsIHRpbWVzIGR1cmluZyB0aGUgbW9kZXNldAo+ Pj4gb3BlcmF0aW9uLCBhbHdheXMgc2VlbWluZyB0byB0cmlnZ2VyIGluIHRoZSBzYW1lIGV4YWN0 IGNhbGxzIHRvIHRoZQo+Pj4gY2hlY2sgZnVuY3Rpb24sIHdoaWxlIG90aGVyIGNhbGxzIHRvIHRo ZSBmdW5jdGlvbiBuZXZlciBjYXVnaHQgYW55dGhpbmcuCj4+Pgo+Pj4gU28gZmFyIEkndmUgbm90 IHNlZW4gdGhpcyBwcm9ibGVtIG9jY3VycmluZyB3aGVuIGNhcmVmdWxseSBhdm9pZGluZyBhbGwK Pj4+IHJlYWQgYWNjZXNzZXMgdG8gRElTUExBWV9QSFlfQ09OVFJPTC4gTm90IHN1cmUgaWYgdGhh dCdzIGp1c3QgcHVyZSBsdWNrCj4+PiBvciBhbiBhY3R1YWwgd29ya2Fyb3VuZCwgYnV0IHdlIGNh biBob3BlIGl0IHdvcmtzLiBTbyBsZXQncyBhdm9pZCByZWFkaW5nCj4+PiB0aGUgcmVnaXN0ZXIg YW5kIGluc3RlYWQgdHJhY2sgdGhlIGRlc2lyZWQgdmFsdWUgb2YgdGhlIHJlZ2lzdGVyIGluIGRl dl9wcml2Lgo+Pj4KPj4+IHYyOiBSZWFkIG91dCB0aGUgcG93ZXIgd2VsbCBzdGF0ZSB0byBkZXRl cm1pbmUgaW5pdGlhbCByZWdpc3RlciB2YWx1ZQo+Pj4gdjM6IFVzZSBEUElPX0NIeCBuYW1lcyBp bnN0ZWFkIG9mIHJhdyBudW1iZXJzCj4+IEV2ZW4gcmVhZGluZyBvbmNlIERJU1BMQVlfUEhZX0NP TlRST0wgbGF5ZXIgaXMgZ2V0dGluZyBjb3JydXB0ZWQ/Cj4gTm90IGFsd2F5cy4gSSB0aGluayBp dCBzb21laG93IGRlcGVuZHMgb24gd2hhdCBvdGhlciByZWdpc3RlciBhY2Nlc3Nlcwo+IGhhcHBl biBhcm91bmQgaXQuIFNvIHRoZXJlIGlzIHBlcmhhcHMgc29tZSBtYWdpYyBzZXF1ZW5jZSB0aGF0 IG1pZ2h0IGFsbG93Cj4gcmVhZGluZyBpdCwgYnV0IEkgZGVjaWRlZCB0aGF0IGl0J3MgYmV0dGVy IHRvIGJlIHNhZmUgYW5kIG5ldmVyIHJlYWQgaXQuCj4KPj4gSSBzYXcgc2ltaWxhciBpc3N1ZXMg b24gbXkgc2V0dXAuIE9uIHNvbWUgcGxhdGZvcm0gYWNjZXNzIHBoeSBpcyBjYXVzaW5nIHN5c3Rl bSBiZWhhdmUgaW5jb25zaXN0ZW50bHkgIDooCj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pj4gLS0tCj4+PiAgICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMiArKwo+Pj4gICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgIHwgIDUgKysrKy0KPj4+ICAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8IDM2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLQo+Pj4gICAgMyBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gaW5k ZXggODIyZjI1OS4uMjg4YzNmYyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+ IEBAIC0xNzU0LDYgKzE3NTQsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4+PiAgICAK Pj4+ICAgIAl1MzIgZmRpX3J4X2NvbmZpZzsKPj4+ICAgIAo+Pj4gKwl1MzIgY2h2X3BoeV9jb250 cm9sOwo+Pj4gKwo+Pj4gICAgCXUzMiBzdXNwZW5kX2NvdW50Owo+Pj4gICAgCXN0cnVjdCBpOTE1 X3N1c3BlbmRfc2F2ZWRfcmVnaXN0ZXJzIHJlZ2ZpbGU7Cj4+PiAgICAJc3RydWN0IHZsdl9zMGl4 X3N0YXRlIHZsdl9zMGl4X3N0YXRlOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+PiBpbmRl eCBjZmJkNWE2Li45ODU4OGQ1IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4g QEAgLTE4ODcsNyArMTg4NywxMCBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPj4+ICAg ICNkZWZpbmUgRFBJT19QSFlfU1RBVFVTCQkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDYyNDApCj4+ PiAgICAjZGVmaW5lICAgRFBMTF9QT1JURF9SRUFEWV9NQVNLCQkoMHhmKQo+Pj4gICAgI2RlZmlu ZSBESVNQTEFZX1BIWV9DT05UUk9MIChWTFZfRElTUExBWV9CQVNFICsgMHg2MDEwMCkKPj4+IC0j ZGVmaW5lICAgUEhZX0NPTV9MQU5FX1JFU0VUX0RFQVNTRVJUKHBoeSkgKDEgPDwgKHBoeSkpCj4+ PiArI2RlZmluZSAgIFBIWV9DSF9TVV9QU1IJCQkJMHgxCj4+PiArI2RlZmluZSAgIFBIWV9DSF9E RUVQX1BTUgkJCTB4Nwo+PiBQSFlfQ0hfREVFUF9QU1IgZGVmaW5lZCBidXQgbm90IHVzZWQgaW4g dGhpcyBwYXRjaD8KPiBKdXN0IHdhbnRlZCB0byBkZWZpbmUgaXQgc2luY2UgaXQncyB0aGUgb25s eSBvdGhlciB2YWxpZCB2YWx1ZSwgYW5kIHRoZQo+IGRvYyBzaXR1YXRpb24gaXMgY3JhcC4gSSd2 ZSBub3QgcGxheWVkIGFyb3VuZCB3aXRoIFBTUiBzbyBJJ20gbm90Cj4gZW50aXJlbHkgc3VyZSBo b3cgdGhlc2Ugd291bGQgYmUgdXNlZCBpbiBwcmFjdGlzZS4gTXkgZ3V0IGlzIHRlbGxpbmcgbWUK PiBTVV9QU1IgbWlnaHQgYmUgdXNlZCB3aXRoIGxpbmsgc3RhbmRieSBhbmQgREVFUF9QU1Igd2l0 aCBsaW5rIG9mZiwgYnV0Cj4gdGhhdCdzIGp1c3QgYSBodW5jaCBhdCB0aGlzIHBvaW50LgoKcmln aHQgdmlsbGUsIERFRVBfUFNSIGlzIHJlbGF0ZWQgdG8gbGluayBvZmYuIEkgd2lsbCB0cnkgdG8g ZmluZCB0aGUgZG9jcyByZWxhdGVkIHRvIHRoaXMuCgo+IFlvdSdsbCBzZWUgaW4gbGF0ZXIgcGF0 Y2hlcyB0aGF0IHdlJ2xsIHN0YXJ0IHVzaW5nIHRoZSBvdmVycmlkZSBiaXRzIHRvCj4gZm9yY2Ug dGhlIHBvd2VyIHN0YXRlLCBzbyBJIHRoaW5rIGF0IHRoYXQgcG9pbnQgdGhlc2UgZG9uJ3QgZXZl biBtYXR0ZXIuCj4gQnV0IEkgc3VwcG9zZSB3aGVuIHdlIGVudGVyIFBTUiB3ZSBzaG91bGQgZHJv cCB0aGUgb3ZlcnJpZGUgYml0cyB0bwo+IGFsbG93IHRoZSBoYXJkd2FyZSB0byBtYW5hZ2UgdGhl IHBvd2VyIHN0YXRlcyBiYXNlZCBvbiB0aGUgUFNSIG1vZGUKPiBzZWxlY3RlZC4KPgo+PiBvdGhl ciB0aGFuIHRoaXMsIHBhdGNoIGRvZXMgd2hhdCBpdCBzYXlzLgo+PiBSZXZpZXdlZC1ieTogIERl ZXBhayBTPGRlZXBhay5zQGxpbnV4LmludGVsLmNvbT4KPj4KPj4+ICsjZGVmaW5lICAgUEhZX0NI X1BPV0VSX01PREUobW9kZSwgcGh5LCBjaCkJKChtb2RlKSA8PCAoNioocGh5KSszKihjaCkrMikp Cj4+PiArI2RlZmluZSAgIFBIWV9DT01fTEFORV9SRVNFVF9ERUFTU0VSVChwaHkpCSgxIDw8IChw aHkpKQo+Pj4gICAgI2RlZmluZSBESVNQTEFZX1BIWV9TVEFUVVMgKFZMVl9ESVNQTEFZX0JBU0Ug KyAweDYwMTA0KQo+Pj4gICAgI2RlZmluZSAgIFBIWV9QT1dFUkdPT0QocGh5KQkoKChwaHkpID09 IERQSU9fUEhZMCkgPyAoMTw8MzEpIDogKDE8PDMwKSkKPj4+ICAgIAo+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+Pj4gaW5kZXggY2UwMGU2OS4uYjczNjcxZiAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4+PiBAQCAtNjY2 LDggKzY2Niw4IEBAIHN0YXRpYyB2b2lkIGNodl9kcGlvX2Ntbl9wb3dlcl93ZWxsX2VuYWJsZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgICAJaWYgKHdhaXRfZm9yKEk5 MTVfUkVBRChESVNQTEFZX1BIWV9TVEFUVVMpICYgUEhZX1BPV0VSR09PRChwaHkpLCAxKSkKPj4+ ICAgIAkJRFJNX0VSUk9SKCJEaXNwbGF5IFBIWSAlZCBpcyBub3QgcG93ZXIgdXBcbiIsIHBoeSk7 Cj4+PiAgICAKPj4+IC0JSTkxNV9XUklURShESVNQTEFZX1BIWV9DT05UUk9MLCBJOTE1X1JFQUQo RElTUExBWV9QSFlfQ09OVFJPTCkgfAo+Pj4gLQkJICAgUEhZX0NPTV9MQU5FX1JFU0VUX0RFQVNT RVJUKHBoeSkpOwo+Pj4gKwlkZXZfcHJpdi0+Y2h2X3BoeV9jb250cm9sIHw9IFBIWV9DT01fTEFO RV9SRVNFVF9ERUFTU0VSVChwaHkpOwo+Pj4gKwlJOTE1X1dSSVRFKERJU1BMQVlfUEhZX0NPTlRS T0wsIGRldl9wcml2LT5jaHZfcGh5X2NvbnRyb2wpOwo+Pj4gICAgfQo+Pj4gICAgCj4+PiAgICBz dGF0aWMgdm9pZCBjaHZfZHBpb19jbW5fcG93ZXJfd2VsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4+IEBAIC02ODcsOCArNjg3LDggQEAgc3RhdGljIHZvaWQg Y2h2X2RwaW9fY21uX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4+PiAgICAJCWFzc2VydF9wbGxfZGlzYWJsZWQoZGV2X3ByaXYsIFBJUEVfQyk7 Cj4+PiAgICAJfQo+Pj4gICAgCj4+PiAtCUk5MTVfV1JJVEUoRElTUExBWV9QSFlfQ09OVFJPTCwg STkxNV9SRUFEKERJU1BMQVlfUEhZX0NPTlRST0wpICYKPj4+IC0JCSAgIH5QSFlfQ09NX0xBTkVf UkVTRVRfREVBU1NFUlQocGh5KSk7Cj4+PiArCWRldl9wcml2LT5jaHZfcGh5X2NvbnRyb2wgJj0g flBIWV9DT01fTEFORV9SRVNFVF9ERUFTU0VSVChwaHkpOwo+Pj4gKwlJOTE1X1dSSVRFKERJU1BM QVlfUEhZX0NPTlRST0wsIGRldl9wcml2LT5jaHZfcGh5X2NvbnRyb2wpOwo+Pj4gICAgCj4+PiAg ICAJdmx2X3NldF9wb3dlcl93ZWxsKGRldl9wcml2LCBwb3dlcl93ZWxsLCBmYWxzZSk7Cj4+PiAg ICB9Cj4+PiBAQCAtMTQwMSw2ICsxNDAxLDMwIEBAIHN0YXRpYyB2b2lkIGludGVsX3Bvd2VyX2Rv bWFpbnNfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4+ICAgIAlt dXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+Pj4gICAgfQo+Pj4gICAgCj4+PiAr c3RhdGljIHZvaWQgY2h2X3BoeV9jb250cm9sX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+Pj4gK3sKPj4+ICsJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqY21uX2JjID0K Pj4+ICsJCWxvb2t1cF9wb3dlcl93ZWxsKGRldl9wcml2LCBQVU5JVF9QT1dFUl9XRUxMX0RQSU9f Q01OX0JDKTsKPj4+ICsJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqY21uX2QgPQo+Pj4gKwkJbG9v a3VwX3Bvd2VyX3dlbGwoZGV2X3ByaXYsIFBVTklUX1BPV0VSX1dFTExfRFBJT19DTU5fRCk7Cj4+ PiArCj4+PiArCS8qCj4+PiArCSAqIERJU1BMQVlfUEhZX0NPTlRST0wgY2FuIGdldCBjb3JydXB0 ZWQgaWYgcmVhZC4gQXMgYQo+Pj4gKwkgKiB3b3JrYXJvdW5kIG5ldmVyIGV2ZXIgcmVhZCBESVNQ TEFZX1BIWV9DT05UUk9MLCBhbmQKPj4+ICsJICogaW5zdGVhZCBtYWludGFpbiBhIHNoYWRvdyBj b3B5IG91cnNlbHZlcy4gVXNlIHRoZSBhY3R1YWwKPj4+ICsJICogcG93ZXIgd2VsbCBzdGF0ZSB0 byByZWNvbnN0cnVjdCB0aGUgZXhwZWN0ZWQgaW5pdGlhbAo+Pj4gKwkgKiB2YWx1ZS4KPj4+ICsJ ICovCj4+PiArCWRldl9wcml2LT5jaHZfcGh5X2NvbnRyb2wgPQo+Pj4gKwkJUEhZX0NIX1BPV0VS X01PREUoUEhZX0NIX1NVX1BTUiwgRFBJT19QSFkwLCBEUElPX0NIMCkgfAo+Pj4gKwkJUEhZX0NI X1BPV0VSX01PREUoUEhZX0NIX1NVX1BTUiwgRFBJT19QSFkwLCBEUElPX0NIMSkgfAo+Pj4gKwkJ UEhZX0NIX1BPV0VSX01PREUoUEhZX0NIX1NVX1BTUiwgRFBJT19QSFkxLCBEUElPX0NIMCk7Cj4+ PiArCWlmIChjbW5fYmMtPm9wcy0+aXNfZW5hYmxlZChkZXZfcHJpdiwgY21uX2JjKSkKPj4+ICsJ CWRldl9wcml2LT5jaHZfcGh5X2NvbnRyb2wgfD0gUEhZX0NPTV9MQU5FX1JFU0VUX0RFQVNTRVJU KERQSU9fUEhZMCk7Cj4+PiArCWlmIChjbW5fZC0+b3BzLT5pc19lbmFibGVkKGRldl9wcml2LCBj bW5fZCkpCj4+PiArCQlkZXZfcHJpdi0+Y2h2X3BoeV9jb250cm9sIHw9IFBIWV9DT01fTEFORV9S RVNFVF9ERUFTU0VSVChEUElPX1BIWTEpOwo+Pj4gK30KPj4+ICsKPj4+ICAgIHN0YXRpYyB2b2lk IHZsdl9jbW5sYW5lX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4+ICAg IHsKPj4+ICAgIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpjbW4gPQo+Pj4gQEAgLTE0NDMsNyAr MTQ2Nyw5IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0X2h3KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPj4+ICAgIAo+Pj4gICAgCXBvd2VyX2RvbWFpbnMtPmluaXRp YWxpemluZyA9IHRydWU7Cj4+PiAgICAKPj4+IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSAmJiAh SVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4+PiArCWlmIChJU19DSEVSUllWSUVXKGRldikpIHsKPj4+ ICsJCWNodl9waHlfY29udHJvbF9pbml0KGRldl9wcml2KTsKPj4+ICsJfSBlbHNlIGlmIChJU19W QUxMRVlWSUVXKGRldikpIHsKPj4+ICAgIAkJbXV0ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+bG9j ayk7Cj4+PiAgICAJCXZsdl9jbW5sYW5lX3dhKGRldl9wcml2KTsKPj4+ICAgIAkJbXV0ZXhfdW5s b2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+PiBJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==