From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/6] drm/i915/lvds: Restore initial HW state during encoder enabling Date: Tue, 9 Aug 2016 17:55:37 +0300 Message-ID: <20160809145537.GT4329@intel.com> References: <1470742452-5240-1-git-send-email-imre.deak@intel.com> <1470742452-5240-4-git-send-email-imre.deak@intel.com> <20160809124840.GM4329@intel.com> <1470753632.5461.47.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 7B59F6E5D3 for ; Tue, 9 Aug 2016 14:55:40 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1470753632.5461.47.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMDksIDIwMTYgYXQgMDU6NDA6MzJQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIHRpLCAyMDE2LTA4LTA5IGF0IDE1OjQ4ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3Jv dGU6Cj4gPiBPbiBUdWUsIEF1ZyAwOSwgMjAxNiBhdCAwMjozNDowOVBNICswMzAwLCBJbXJlIERl YWsgd3JvdGU6Cj4gPiA+IEF0bSB0aGUgTFZEUyBlbmNvZGVyIGRlcGVuZHMgb24gdGhlIFBQUyBI VyBjb250ZXh0IGJlaW5nIHNhdmVkL3Jlc3RvcmVkCj4gPiA+IGZyb20gZ2VuZXJpYyBzdXNwZW5k L3Jlc3VtZSBjb2RlLiBTaW5jZSB0aGUgUFBTIGlzIHNwZWNpZmljIHRvIHRoZSBMVkRTCj4gPiA+ IGFuZCBlRFAgZW5jb2RlcnMgYSBjbGVhbmVyIHdheSBpcyB0byByZWluaXRpYWxpemUgaXQgZHVy aW5nIGVuY29kZXIKPiA+ID4gZW5hYmxpbmcsIHNvIGRvIHRoaXMgaGVyZSBmb3IgTFZEUy4gRm9s bG93LXVwIHBhdGNoZXMgd2lsbCBpbml0IHRoZSBQUFMKPiA+ID4gZm9yIHRoZSBlRFAgZW5jb2Rl ciBzaW1pbGFybHkgYW5kIHJlbW92ZSB0aGUgc3VzcGVuZC9yZXN1bWUgdGltZSBzYXZlIC8KPiA+ ID4gcmVzdG9yZS4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5k ZWFrQGludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaMKgwqDCoHzCoMKgwqAxICsKPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9sdmRzLmMgfCAxMDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiA+ ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+ ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+IGluZGV4IDg4OTUwOGYuLmRh ODI3NDQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBAQCAtMzcx MCw2ICszNzEwLDcgQEAgZW51bSB7Cj4gPiA+IMKgCj4gPiA+IMKgI2RlZmluZSBfUFBfT05fREVM QVlTCQkJMHg2MTIwOAo+ID4gPiDCoCNkZWZpbmUgUFBfT05fREVMQVlTKHBwc19pZHgpCQlfTU1J T19QUFMocHBzX2lkeCwgX1BQX09OX0RFTEFZUykKPiA+ID4gKyNkZWZpbmXCoMKgUEFORUxfUE9S VF9TRUxFQ1RfU0hJRlQJMzAKPiA+ID4gwqAjZGVmaW5lwqDCoFBBTkVMX1BPUlRfU0VMRUNUX01B U0sJCSgzIDw8IDMwKQo+ID4gPiDCoCNkZWZpbmXCoMKgUEFORUxfUE9SVF9TRUxFQ1RfTFZEUwkJ KDAgPDwgMzApCj4gPiA+IMKgI2RlZmluZcKgwqBQQU5FTF9QT1JUX1NFTEVDVF9EUEEJCSgxIDw8 IDMwKQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gPiA+IGluZGV4IGM1NzM5ZmMu LmQ1MTU4ZTUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2 ZHMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPiA+ID4g QEAgLTQ4LDYgKzQ4LDIwIEBAIHN0cnVjdCBpbnRlbF9sdmRzX2Nvbm5lY3RvciB7Cj4gPiA+IMKg CXN0cnVjdCBub3RpZmllcl9ibG9jayBsaWRfbm90aWZpZXI7Cj4gPiA+IMKgfTsKPiA+ID4gwqAK PiA+ID4gK3N0cnVjdCBpbnRlbF9sdmRzX3BwcyB7Cj4gPiA+ICsJLyogMTAwdXMgdW5pdHMgKi8K PiA+ID4gKwlpbnQgdDFfdDI7Cj4gPiA+ICsJaW50IHQzOwo+ID4gPiArCWludCB0NDsKPiA+ID4g KwlpbnQgdDU7Cj4gPiA+ICsJaW50IHR4Owo+ID4gPiArCj4gPiA+ICsJaW50IGRpdmlkZXI7Cj4g PiA+ICsKPiA+ID4gKwlpbnQgcG9ydDsKPiA+ID4gKwlib29sIHJlc2V0X29uX3Bvd2VyZG93bjsK PiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gwqBzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyIHsKPiA+ ID4gwqAJc3RydWN0IGludGVsX2VuY29kZXIgYmFzZTsKPiA+ID4gwqAKPiA+ID4gQEAgLTU1LDYg KzY5LDkgQEAgc3RydWN0IGludGVsX2x2ZHNfZW5jb2RlciB7Cj4gPiA+IMKgCWk5MTVfcmVnX3Qg cmVnOwo+ID4gPiDCoAl1MzIgYTNfcG93ZXI7Cj4gPiA+IMKgCj4gPiA+ICsJc3RydWN0IGludGVs X2x2ZHNfcHBzIGluaXRfcHBzOwo+ID4gPiArCXUzMiBpbml0X2x2ZHNfdmFsOwo+ID4gPiArCj4g PiA+IMKgCXN0cnVjdCBpbnRlbF9sdmRzX2Nvbm5lY3RvciAqYXR0YWNoZWRfY29ubmVjdG9yOwo+ ID4gPiDCoH07Cj4gPiA+IMKgCj4gPiA+IEBAIC0xMzYsNiArMTUzLDcyIEBAIHN0YXRpYyB2b2lk IGludGVsX2x2ZHNfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ ID4gwqAJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9j b25maWctPnBvcnRfY2xvY2s7Cj4gPiA+IMKgfQo+ID4gPiDCoAo+ID4gPiArc3RhdGljIHZvaWQg aW50ZWxfbHZkc19wcHNfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+ID4gKwkJCQkJc3RydWN0IGludGVsX2x2ZHNfcHBzICpwcHMpCj4gPiA+ICt7Cj4g PiA+ICsJdTMyIHZhbDsKPiA+ID4gKwo+ID4gPiArCXBwcy0+cmVzZXRfb25fcG93ZXJkb3duID0g STkxNV9SRUFEKFBQX0NPTlRST0woMCkpICYgUEFORUxfUE9XRVJfUkVTRVQ7Cj4gPiA+ICsKPiA+ ID4gKwl2YWwgPSBJOTE1X1JFQUQoUFBfT05fREVMQVlTKDApKTsKPiA+ID4gKwlwcHMtPnBvcnQg PSAodmFsICYgUEFORUxfUE9SVF9TRUxFQ1RfTUFTSykgPj4KPiA+ID4gKwkJwqDCoMKgwqBQQU5F TF9QT1JUX1NFTEVDVF9TSElGVDsKPiA+ID4gKwlwcHMtPnQxX3QyID0gKHZhbCAmIFBBTkVMX1BP V0VSX1VQX0RFTEFZX01BU0spID4+Cj4gPiA+ICsJCcKgwqDCoMKgwqBQQU5FTF9QT1dFUl9VUF9E RUxBWV9TSElGVDsKPiA+ID4gKwlwcHMtPnQ1ID0gKHZhbCAmIFBBTkVMX0xJR0hUX09OX0RFTEFZ X01BU0spID4+Cj4gPiA+ICsJCcKgwqBQQU5FTF9MSUdIVF9PTl9ERUxBWV9TSElGVDsKPiA+ID4g Kwo+ID4gPiArCXZhbCA9IEk5MTVfUkVBRChQUF9PRkZfREVMQVlTKDApKTsKPiA+ID4gKwlwcHMt PnQzID0gKHZhbCAmIFBBTkVMX1BPV0VSX0RPV05fREVMQVlfTUFTSykgPj4KPiA+ID4gKwkJwqDC oFBBTkVMX1BPV0VSX0RPV05fREVMQVlfU0hJRlQ7Cj4gPiA+ICsJcHBzLT50eCA9ICh2YWwgJiBQ QU5FTF9MSUdIVF9PRkZfREVMQVlfTUFTSykgPj4KPiA+ID4gKwkJwqDCoFBBTkVMX0xJR0hUX09G Rl9ERUxBWV9TSElGVDsKPiA+ID4gKwo+ID4gPiArCXZhbCA9IEk5MTVfUkVBRChQUF9ESVZJU09S KDApKTsKPiA+ID4gKwlwcHMtPmRpdmlkZXIgPSAodmFsICYgUFBfUkVGRVJFTkNFX0RJVklERVJf TUFTSykgPj4KPiA+ID4gKwkJwqDCoMKgwqDCoMKgwqBQUF9SRUZFUkVOQ0VfRElWSURFUl9TSElG VDsKPiA+ID4gKwkvKiBDb252ZXJ0IGZyb20gMTAwbXMgdG8gMTAwdXMgdW5pdHMgKi8KPiA+ID4g KwlwcHMtPnQ0ID0gKCh2YWwgJiBQQU5FTF9QT1dFUl9DWUNMRV9ERUxBWV9NQVNLKSA+Pgo+ID4g PiArCQnCoMKgwqBQQU5FTF9QT1dFUl9DWUNMRV9ERUxBWV9TSElGVCkgKiAxMDAwOwo+ID4gCj4g PiBUaGlzIHNob3VsZCBoYXZlIHRoZSArMSBvZmZzZXQgaGFuZGxpbmcgSSB0aGluay4KPiAKPiBP aywgd2lsbCBhZGQgdGhhdC4KPiAKPiA+IEhtbS4gTG9va3MgbGlrZSB3ZSBtZXNzIHRoYXQgdXAg ZXZlbiBmb3IgZURQIDooCj4gPiA+ICsKPiA+ID4gKwlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdikt PmdlbiA8PSA0ICYmCj4gPiA+ICsJwqDCoMKgwqBwcHMtPnQxX3QyID09IDAgJiYgcHBzLT50NSA9 PSAwICYmIHBwcy0+dDMgPT0gMCAmJiBwcHMtPnR4ID09IDApIHsKPiA+ID4gKwkJRFJNX0RFQlVH X0tNUygiUGFuZWwgcG93ZXIgdGltaW5ncyB1bmluaXRpYWxpemVkLCAiCj4gPiA+ICsJCQnCoMKg wqDCoMKgwqAic2V0dGluZyBkZWZhdWx0c1xuIik7Cj4gPiA+ICsJCS8qIFNldCBUMiB0byA0MG1z IGFuZCBUNSB0byAyMDBtcyBpbiAxMDAgdXNlYyB1bml0cyAqLwo+ID4gPiArCQlwcHMtPnQxX3Qy ID0gNDAgKiAxMDsKPiA+ID4gKwkJcHBzLT50NSA9IDIwMCAqIDEwOwo+ID4gPiArCQkvKiBTZXQg VDMgdG8gMzVtcyBhbmQgVHggdG8gMjAwbXMgaW4gMTAwIHVzZWMgdW5pdHMgKi8KPiA+ID4gKwkJ cHBzLT50MyA9IDM1ICogMTA7Cj4gPiA+ICsJCXBwcy0+dHggPSAyMDAgKiAxMDsKPiA+IAo+ID4g Tm90IHN1cmUgd2hlcmUgdGhlc2UgY2FtZSBmcm9tIG9yaWdpbmFsbHkuIFRoZSBzcGd3IHNwZWMg dGVsbHMgdXM6Cj4gPiAKPiA+IG1pbgltYXgKPiA+IHQxCTAuNQkxMAo+ID4gdDIJMAk1MAo+ID4g dDMJMAk1MAo+ID4gdDQJMjAwCS0KPiA+IHQ1CTIwMAktCj4gPiB0NgkyMDAJLQo+ID4gdDcJMAkx MAo+ID4gCj4gPiBTbyBtYXliZSB3ZSBzaG91bGQgYXQgbGVhc3Qgc2V0IHQ0PTIwMCBoZXJlIGJh c2VkIG9uIHRoZSBtaW5pbXVtIHQ0Cj4gPiBkZWxheSBpbiB0aGUgc3BlYywgcHJvYmFibHkgc2hv dWxkIGFkZCB0aGUgbWF4IHQ3IHRpbWUgdGhlcmUgYXMgd2VsbAo+ID4gYXMgdGhhdCdzIHdoYXQg dGhlIHBvd2VyIGN5Y2xlIGRlbGF5cyBzZWVtcyB0byBiZSByZWFsbHk6IHQ0K3Q3Lgo+ID4gQnNw ZWMgc2VlbXMgdG8gY2xhaW0gdGhhdCBzcGd3IHNwZWMgaGFzIGFuIHVwcGVyIGxpbWl0IG9mIDQw MCBmb3IgdGhpcywKPiA+IGJ1dCBJIGNhbid0IHNlZSB0aGF0IGF0IGxlYXN0IGluIHRoZSBjb3B5 IEkgZm91bmQuCj4gPiAKPiA+IEFuZCBtYXliZSBidW1wIHVwIHQxX3QyPTYwIGFuZCB0Mz01MCBi YXNlZCBvbiB0aGUgbWF4IGRlbGF5IGZvciB0aG9zZQo+ID4gaW4gdGhlIHNwZWM/Cj4gCj4gSGF2 ZW4ndCBmb3VuZCB5ZXQgdGhlIHNwZWMsIGJ1dCB0aGUgYWJvdmUgc2VlbSBsaWtlIHJlYXNvbmFi bGUKPiBkZWZhdWx0cy4KPiAKPiA+IAo+ID4gQW55d2F5cywgdGhpcyBpcyBhbGwgbWF0ZXJpYWwg Zm9yIGEgc2VwYXJhdGUgcGF0Y2ggZm9yIHN1cmUuCj4gCj4gWWVwLCBJIGtlcHQgdGhlIGJlaGF2 aW9yIGhlcmUgYXMtaXMuCj4gCj4gPiAKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlEUk1fREVC VUdfRFJJVkVSKCJMVkRTIFBQUzp0MSt0MiAlZCB0MyAlZCB0NCAlZCB0NSAlZCB0eCAlZCAiCj4g PiA+ICsJCQnCoCJkaXZpZGVyICVkIHBvcnQgJWQgcmVzZXRfb25fcG93ZXJkb3duICVkXG4iLAo+ ID4gPiArCQkJwqBwcHMtPnQxX3QyLCBwcHMtPnQzLCBwcHMtPnQ0LCBwcHMtPnQ1LCBwcHMtPnR4 LAo+ID4gPiArCQkJwqBwcHMtPmRpdmlkZXIsIHBwcy0+cG9ydCwgcHBzLT5yZXNldF9vbl9wb3dl cmRvd24pOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9sdmRzX3Bw c19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gKwkJCQnC oMKgwqBzdHJ1Y3QgaW50ZWxfbHZkc19wcHMgKnBwcykKPiA+ID4gK3sKPiA+ID4gKwl1MzIgdmFs Owo+ID4gPiArCj4gPiA+ICsJdmFsID0gSTkxNV9SRUFEKFBQX0NPTlRST0woMCkpOwo+ID4gPiAr CVdBUk5fT04oKHZhbCAmIFBBTkVMX1VOTE9DS19NQVNLKSAhPSBQQU5FTF9VTkxPQ0tfUkVHUyk7 Cj4gPiA+ICsJaWYgKHBwcy0+cmVzZXRfb25fcG93ZXJkb3duKQo+ID4gPiArCQl2YWwgfD0gUEFO RUxfUE9XRVJfUkVTRVQ7Cj4gPiAKPiA+IEhtbS4gTWF5YmUgd2UgY2FuIGp1c3QgYWx3YXlzIHNl dCB0aGlzIGJpdD8KPiAKPiBTZWVtcyByZWFzb25hYmxlIChmb3IgR0VOMyspLCBidXQgYXMgYWxz byBhcyBhIGZvbGxvdy11cC4gSSBqdXN0IHdvbmRlcgo+IGlmIHRoZSB3L2EgYmVsb3cgc2hvdWxk IGJlIHRoZW4gYWxzbyBhcHBsaWVkIGF0IHRoZSBzYW1lIHRpbWUuIEJTcGVjCj4gZG9lc24ndCBz cGVjaWZ5IHRoZSB3L2EgZXhjZXB0IGZvciBJQlgsIGJ1dCBpdCBzZWVtcyBsaWtlIHRoZSBzYWZl cgo+IHRoaW5nIHRvIGRvLgoKVGhlIHByb2JsZW0gd2l0aCB0aGUgdy9hIGlzIHRoYXQgaXQgb3Bl bnMgdXAgYSB0aW1lIHdpbmRvdyB3aGVuIGEgcmVzZXQKd2lsbCB0aGVuIG5vdCBpbml0aWF0ZSBh IHBvd2VyIGRvd24gY3ljbGUuIE5vdCBzdXJlIHRoYXQncyBhIGh1Z2UKY29uY2VybiB0aG91Z2gg c2luY2UgdGhlIGhhcmR3YXJlIGNhbid0IGFwcGFyZW50bHkgZ3VhcmFudGVlIHRoYXQgYW55CnBv d2VyIGRvd24gY3ljbGUgaW5pdGlhdGVkIHZpYSBhIHJlc2V0IGlzIGFjdHVhbGx5IGxvbmcgZW5v dWdoLgoKVGhlIG5vdGVzIGluIHRoZSBzcGVjIGRvIG5vdCBpbmRpY2F0ZSB0aGF0IHRoZSBwcm9i bGVtIHdvdWxkIGhhdmUgYmVlbgpvYnNlcnZlZCBvbiBhbnkgb3RoZXIgcGxhdGZvcm0uCgo+IAo+ ID4gSG1tLCB3ZSBhbHNvIHRvdGFsbHkgZmFpbCB0byBkZWFsIHdpdGggdGhlIHJlbGF0ZWQgSUJY IHcvYQo+ID4gaW4gdGhlIExWRFMgY29kZS4gU2hvdWxkIHByb2JhYmx5IGZpeCB0aGF0IHVwIGFz IHdlbGwgYXMgYQo+ID4gZm9sbG93dXAuCj4gCj4gT2suCj4gCj4gPiA+ICsJSTkxNV9XUklURShQ UF9DT05UUk9MKDApLCB2YWwpOwo+ID4gPiArCj4gPiA+ICsJSTkxNV9XUklURShQUF9PTl9ERUxB WVMoMCksIChwcHMtPnBvcnQgPDwgUEFORUxfUE9SVF9TRUxFQ1RfU0hJRlQpIHwKPiA+ID4gKwkJ CQnCoMKgwqDCoChwcHMtPnQxX3QyIDw8IFBBTkVMX1BPV0VSX1VQX0RFTEFZX1NISUZUKSB8Cj4g PiA+ICsJCQkJwqDCoMKgwqAocHBzLT50NSA8PCBQQU5FTF9MSUdIVF9PTl9ERUxBWV9TSElGVCkp Owo+ID4gPiArCUk5MTVfV1JJVEUoUFBfT0ZGX0RFTEFZUygwKSwgKHBwcy0+dDMgPDwgUEFORUxf UE9XRVJfRE9XTl9ERUxBWV9TSElGVCkgfAo+ID4gPiArCQkJCcKgwqDCoMKgwqAocHBzLT50eCA8 PCBQQU5FTF9MSUdIVF9PRkZfREVMQVlfU0hJRlQpKTsKPiA+ID4gKwlJOTE1X1dSSVRFKFBQX0RJ VklTT1IoMCksIChwcHMtPmRpdmlkZXIgPDwgUFBfUkVGRVJFTkNFX0RJVklERVJfU0hJRlQpIHwK PiA+ID4gKwkJCQnCoMKgKChwcHMtPnQ0IC8gMTAwMCkgPDwgUEFORUxfUE9XRVJfQ1lDTEVfREVM QVlfU0hJRlQpKTsKPiA+IAo+ID4gRElWX1JPVU5EX1VQKCkgSSB0aGluaywgYW5kIG1heWJlIHRo ZSArMSBoYW5kbGluZy4gVGhvdWdoIEkgY2FuJ3QgcmVhbGx5Cj4gPiB0ZWxsIGlmIHRoZSBzcGVj IGhhcyBpbnRlbmRlZCB0aGUgKzEgdG8gYmUgYSByZXBsYWNlbWVudCBmb3Igcm91bmRpbmcKPiA+ IHVwLCBvciBkbyB3ZSBuZWVkIHRvIGRvIGJvdGguIEJvdGggd291bGQgc2VlbSBsaWtlIHRoZSBz YWZlIGNob2ljZS4gR2VuMgo+ID4gQnNwZWMgZG9lc24ndCBtZW50aW9uIHRoZSArMSwgYnV0IGl0 IHNheXMgd3JpdGluZyAwIHdpbGwgZXZlbiBhYm9ydCBhbnkKPiA+IG9uZ29pbmcgZGVsYXkuCj4g Cj4gT2ssIHdpbGwgY2hhbmdlIGl0IGRvaW5nIGJvdGggcm91bmRpbmcgYW5kICsxLgo+IAo+ID4g Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gwqBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfZW5hYmxlX2x2 ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiA+IMKgewo+ID4gPiDCoAlzdHJ1 Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVu Y29kZXItPmJhc2UpOwo+ID4gPiBAQCAtMTU0LDcgKzIzNyw5IEBAIHN0YXRpYyB2b2lkIGludGVs X3ByZV9lbmFibGVfbHZkcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ID4gwqAJ CWFzc2VydF9wbGxfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUpOwo+ID4gPiDCoAl9Cj4gPiA+IMKg Cj4gPiA+IC0JdGVtcCA9IEk5MTVfUkVBRChsdmRzX2VuY29kZXItPnJlZyk7Cj4gPiA+ICsJaW50 ZWxfbHZkc19wcHNfaW5pdF9odyhkZXZfcHJpdiwgJmx2ZHNfZW5jb2Rlci0+aW5pdF9wcHMpOwo+ ID4gPiArCj4gPiA+ICsJdGVtcCA9IGx2ZHNfZW5jb2Rlci0+aW5pdF9sdmRzX3ZhbDsKPiA+ID4g wqAJdGVtcCB8PSBMVkRTX1BPUlRfRU4gfCBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9VUDsKPiA+ID4g wqAKPiA+ID4gwqAJaWYgKEhBU19QQ0hfQ1BUKGRldikpIHsKPiA+ID4gQEAgLTkyMiwxOCArMTAw Nyw2IEBAIHZvaWQgaW50ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiA+ IMKgCQlEUk1fREVCVUdfS01TKCJMVkRTIGlzIG5vdCBwcmVzZW50IGluIFZCVCwgYnV0IGVuYWJs ZWQgYW55d2F5XG4iKTsKPiA+ID4gwqAJfQo+ID4gPiDCoAo+ID4gPiAtCcKgLyogU2V0IHRoZSBQ YW5lbCBQb3dlciBPbi9PZmYgdGltaW5ncyBpZiB1bmluaXRpYWxpemVkLiAqLwo+ID4gPiAtCWlm IChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDwgNSAmJgo+ID4gPiAtCcKgwqDCoMKgSTkxNV9S RUFEKFBQX09OX0RFTEFZUygwKSkgPT0gMCAmJiBJOTE1X1JFQUQoUFBfT0ZGX0RFTEFZUygwKSkg PT0gMCkgewo+ID4gPiAtCQkvKiBTZXQgVDIgdG8gNDBtcyBhbmQgVDUgdG8gMjAwbXMgKi8KPiA+ ID4gLQkJSTkxNV9XUklURShQUF9PTl9ERUxBWVMoMCksIDB4MDE5MDA3ZDApOwo+ID4gPiAtCj4g PiA+IC0JCS8qIFNldCBUMyB0byAzNW1zIGFuZCBUeCB0byAyMDBtcyAqLwo+ID4gPiAtCQlJOTE1 X1dSSVRFKFBQX09GRl9ERUxBWVMoMCksIDB4MDE1ZTA3ZDApOwo+ID4gPiAtCj4gPiA+IC0JCURS TV9ERUJVR19LTVMoIlBhbmVsIHBvd2VyIHRpbWluZ3MgdW5pbml0aWFsaXplZCwgc2V0dGluZyBk ZWZhdWx0c1xuIik7Cj4gPiA+IC0JfQo+ID4gPiAtCj4gPiA+IMKgCWx2ZHNfZW5jb2RlciA9IGt6 YWxsb2Moc2l6ZW9mKCpsdmRzX2VuY29kZXIpLCBHRlBfS0VSTkVMKTsKPiA+ID4gwqAJaWYgKCFs dmRzX2VuY29kZXIpCj4gPiA+IMKgCQlyZXR1cm47Cj4gPiA+IEBAIC05OTksNiArMTA3MiwxMCBA QCB2b2lkIGludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiDCoAkJ CQnCoMKgwqDCoMKgwqBkZXYtPm1vZGVfY29uZmlnLnNjYWxpbmdfbW9kZV9wcm9wZXJ0eSwKPiA+ ID4gwqAJCQkJwqDCoMKgwqDCoMKgRFJNX01PREVfU0NBTEVfQVNQRUNUKTsKPiA+ID4gwqAJaW50 ZWxfY29ubmVjdG9yLT5wYW5lbC5maXR0aW5nX21vZGUgPSBEUk1fTU9ERV9TQ0FMRV9BU1BFQ1Q7 Cj4gPiA+ICsKPiA+ID4gKwlpbnRlbF9sdmRzX3Bwc19nZXRfaHdfc3RhdGUoZGV2X3ByaXYsICZs dmRzX2VuY29kZXItPmluaXRfcHBzKTsKPiA+ID4gKwlsdmRzX2VuY29kZXItPmluaXRfbHZkc192 YWwgPSBsdmRzOwo+ID4gPiArCj4gPiA+IMKgCS8qCj4gPiA+IMKgCcKgKiBMVkRTIGRpc2NvdmVy eToKPiA+ID4gwqAJwqAqIDEpIGNoZWNrIGZvciBFRElEIG9uIEREQwo+ID4gPiAtLcKgCj4gPiA+ IDIuNS4wCj4gPiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRl bCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==