From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v6 7/8] drm/i915: BDW clock change support [regression] Date: Tue, 6 Oct 2015 12:13:23 +0200 Message-ID: <20151006101323.GE3383@phenom.ffwll.local> References: <1433335514-4156-1-git-send-email-mika.kahola@intel.com> <1433335514-4156-8-git-send-email-mika.kahola@intel.com> <87bngf4xk3.fsf@intel.com> <878ubj4x9f.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B24D720B6 for ; Tue, 6 Oct 2015 03:10:30 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so151687157wic.1 for ; Tue, 06 Oct 2015 03:10:29 -0700 (PDT) Content-Disposition: inline In-Reply-To: <878ubj4x9f.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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gMTYsIDIwMTUgYXQgMDQ6MDc6NDBQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAxNiBKdW4gMjAxNSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gPiBPbiBXZWQsIDAzIEp1biAyMDE1LCBNaWthIEthaG9sYSA8 bWlrYS5rYWhvbGFAaW50ZWwuY29tPiB3cm90ZToKPiA+PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4+Cj4gPj4gQWRkIHN1cHBvcnQgZm9y IGNoYW5naW5nIGNkY2xrIGZyZXF1ZW5jeSBkdXJpbmcgcnVudGltZSBvbiBCRFcuIFRoZQo+ID4+ IHByb2NlZHVyZSBpcyBxdWl0ZSBhIGJpdCBkaWZmZXJlbnQgb24gQkRXIGZyb20gdGhlIG9uZSBv biBIU1csIHNvCj4gPj4gYWRkIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIGl0Lgo+ID4+Cj4gPj4g QWxzbyB3aXRoIElQUyBlbmFibGVkIHRoZSBhY3R1YWwgcGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2Vl ZCA5NSUgb2YgY2RjbGssCj4gPj4gc28gdGFrZSB0aGF0IGludG8gYWNjb3VudCB3aGVuIGNvbXB1 dGluZyB0aGUgbWF4IHBpeGVsIHJhdGUuCj4gPj4KPiA+PiB2MjogR3JhYiBycHMuaHdfbG9jayBh cm91bmQgc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoKQo+ID4+IHYzOiBSZWJhc2UgZHVlIHRvIHBv d2VyIHdlbGwgdnMuIC5nbG9iYWxfcmVzb3VyY2VzKCkgcmVvcmRlcmluZwo+ID4+IHY0OiBSZWJh c2VkIHRvIHRoZSBsYXRlc3QKPiA+PiB2NTogUmViYXNlZCB0byB0aGUgbGF0ZXN0Cj4gPj4gdjY6 IFBhdGNoIG9yZGVyIHNodWZmbGUgc28gdGhhdCBCcm9hZHdlbGwgQ0QgY2xvY2sgY2hhbmdlIGlz Cj4gPj4gICAgIGFwcGxpZWQgYmVmb3JlIHRoZSBwYXRjaCBmb3IgSGFzd2VsbCBDRCBjbG9jayBj aGFuZ2UKPiA+PiB2NzogRml4IGZvciBwYXRjaCBzdHlsZSBwcm9ibGVtcwo+ID4+Cj4gPj4gU2ln bmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiA+PiBTaWduZWQtb2ZmLWJ5OiBNaWthIEthaG9sYSA8bWlrYS5rYWhvbGFAaW50ZWwuY29t Pgo+ID4KPiA+IFRoaXMgcGF0Y2ggaGFyZCBoYW5ncyBteSBCRFcgTlVDIGF0IGJvb3Qgd2hlbiBi b3RoIERQIGFuZCBIRE1JIGFyZQo+ID4gY29ubmVjdGVkLiBFaXRoZXIgRFAgb3IgSERNSSBhbG9u ZSBhcmUgZ29vZCwgc2FtZSB3aXRoIGhvdHBsdWdnaW5nIHRoZQo+ID4gb3RoZXIgYWZ0ZXJ3YXJk cy4gQm9vdGluZyB0byBncnViIHdpdGggYm90aCBjb25uZWN0ZWQsIGFuZCB1bnBsdWdnaW5nCj4g PiBIRE1JIGJlZm9yZSBsb2FkaW5nIHRoZSBrZXJuZWwgYWxzbyByZXByb2R1Y2VzIHRoZSBpc3N1 ZS4KPiA+Cj4gPiBJdCBsb29rcyBsaWtlIHRoZSBwcm9ibGVtIGJvaWxzIGRvd24gdG8gdGhlIEJJ T1Mgc2V0dGluZyB1cCBhIHNtYWxsZXIKPiA+IHJlc29sdXRpb24gb24gdGhlIERQIGRpc3BsYXkg d2hlbiBib3RoIGFyZSBjb25uZWN0ZWQsIGFuZCB0aGlzIHBhdGNoCj4gPiBmYWlscyB0byBjb3Bl IHdpdGggdGhhdCBvbiBpOTE1IGxvYWQuCj4gCj4gQnkgInRoaXMgcGF0Y2giIEkgb2J2aW91c2x5 IHJlZmVyIHRvCj4gCj4gY29tbWl0IGI0MzJlNWNmZDVlOTIxMjdhZDJkZDgzYmZjMzA4M2YxZGJj ZTQzZmIKPiBBdXRob3I6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gRGF0ZTogICBXZWQgSnVuIDMgMTU6NDU6MTMgMjAxNSArMDMwMAo+IAo+ICAgICBk cm0vaTkxNTogQkRXIGNsb2NrIGNoYW5nZSBzdXBwb3J0Cj4gCj4gYW5kIGV2ZXJ5dGhpbmcgd29y a3MgZm9yIHRoZSBjb21taXQgYmVmb3JlIHRoYXQuCgpBbm90aGVyIHJlZ3Jlc3Npb24gZm9yIEph aXJvIHRvIHRyYWNrLiBKYWlybyBwbGVhc2UgYWRkIHRoZSBiaXNlY3QgcmVzdWx0CnRvIHRoZSBi dWd6aWxsYSBhbmQgbWFyayBpdCBhcyBiaXNlY3RlZCB0b28uCgpUaGFua3MsIERhbmllbAoKPiAK PiBCUiwKPiBKYW5pLgo+IAo+IAo+IAo+IAo+IAo+ID4KPiA+IEJSLAo+ID4gSmFuaS4KPiA+Cj4g Pgo+ID4KPiA+Pgo+ID4+IEF1dGhvcjogICAgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+PiAtLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCAgICAgIHwgICAyICsKPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgMjE2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gPj4gIDIg ZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQo+ID4+Cj4g Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4gaW5kZXggNzIxMzIyNC4uMGY3MmMwZSAxMDA2 NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4+IEBAIC02NzA1LDYgKzY3MDUsNyBA QCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPiA+PiAgI2RlZmluZQkgIEdFTjZfUENPREVf UkVBRF9SQzZWSURTCQkweDUKPiA+PiAgI2RlZmluZSAgICAgR0VONl9FTkNPREVfUkM2X1ZJRCht dikJCSgoKG12KSAtIDI0NSkgLyA1KQo+ID4+ICAjZGVmaW5lICAgICBHRU42X0RFQ09ERV9SQzZf VklEKHZpZHMpCQkoKCh2aWRzKSAqIDUpICsgMjQ1KQo+ID4+ICsjZGVmaW5lICAgQkRXX1BDT0RF X0RJU1BMQVlfRlJFUV9DSEFOR0VfUkVRCTB4MTgKPiA+PiAgI2RlZmluZSAgIEdFTjlfUENPREVf UkVBRF9NRU1fTEFURU5DWQkJMHg2Cj4gPj4gICNkZWZpbmUgICAgIEdFTjlfTUVNX0xBVEVOQ1lf TEVWRUxfTUFTSwkJMHhGRgo+ID4+ICAjZGVmaW5lICAgICBHRU45X01FTV9MQVRFTkNZX0xFVkVM XzFfNV9TSElGVAk4Cj4gPj4gQEAgLTcxNzAsNiArNzE3MSw3IEBAIGVudW0gc2tsX2Rpc3BfcG93 ZXJfd2VsbHMgewo+ID4+ICAjZGVmaW5lICBMQ1BMTF9DTEtfRlJFUV8zMzdfNV9CRFcJKDI8PDI2 KQo+ID4+ICAjZGVmaW5lICBMQ1BMTF9DTEtfRlJFUV82NzVfQkRXCQkoMzw8MjYpCj4gPj4gICNk ZWZpbmUgIExDUExMX0NEX0NMT0NLX0RJU0FCTEUJCSgxPDwyNSkKPiA+PiArI2RlZmluZSAgTENQ TExfUk9PVF9DRF9DTE9DS19ESVNBQkxFCSgxPDwyNCkKPiA+PiAgI2RlZmluZSAgTENQTExfQ0Qy WF9DTE9DS19ESVNBQkxFCSgxPDwyMykKPiA+PiAgI2RlZmluZSAgTENQTExfUE9XRVJfRE9XTl9B TExPVwkJKDE8PDIyKQo+ID4+ICAjZGVmaW5lICBMQ1BMTF9DRF9TT1VSQ0VfRkNMSwkJKDE8PDIx KQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiBpbmRleCBjM2YwMWFh Li5iMWUyMDY5IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4+IEBAIC01NzUxLDcgKzU3NTEsMjIgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX21heF9j ZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+ICB7Cj4gPj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4+ICAKPiA+PiAtCWlm IChJU19WQUxMRVlWSUVXKGRldikpIHsKPiA+PiArCWlmIChJU19CUk9BRFdFTEwoZGV2KSkgIHsK PiA+PiArCQkvKgo+ID4+ICsJCSAqIEZJWE1FIHdpdGggZXh0cmEgY29vbGluZyB3ZSBjYW4gYWxs b3cKPiA+PiArCQkgKiA1NDAgTUh6IGZvciBVTFggYW5kIDY3NSBNaHogZm9yIFVMVC4KPiA+PiAr CQkgKiBIb3cgY2FuIHdlIGtub3cgaWYgZXh0cmEgY29vbGluZyBpcwo+ID4+ICsJCSAqIGF2YWls YWJsZT8gUENJIElELCBWVEIsIHNvbWV0aGluZyBlbHNlPwo+ID4+ICsJCSAqLwo+ID4+ICsJCWlm IChJOTE1X1JFQUQoRlVTRV9TVFJBUCkgJiBIU1dfQ0RDTEtfTElNSVQpCj4gPj4gKwkJCWRldl9w cml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPiA+PiArCQllbHNlIGlmIChJU19CRFdfVUxY KGRldikpCj4gPj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPiA+PiAr CQllbHNlIGlmIChJU19CRFdfVUxUKGRldikpCj4gPj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtf ZnJlcSA9IDU0MDAwMDsKPiA+PiArCQllbHNlCj4gPj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtf ZnJlcSA9IDY3NTAwMDsKPiA+PiArCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4g Pj4gIAkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDAwMDAwOwo+ID4+ICAJfSBlbHNlIHsK PiA+PiAgCQkvKiBvdGhlcndpc2UgYXNzdW1lIGNkY2xrIGlzIGZpeGVkICovCj4gPj4gQEAgLTY2 MjEsMTMgKzY2MzYsMTEgQEAgc3RhdGljIGJvb2wgcGlwZV9jb25maWdfc3VwcG9ydHNfaXBzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+PiAgCQlyZXR1cm4gdHJ1ZTsKPiA+ PiAgCj4gPj4gIAkvKgo+ID4+IC0JICogRklYTUUgaWYgd2UgY29tcGFyZSBhZ2FpbnN0IG1heCB3 ZSBzaG91bGQgdGhlbgo+ID4+IC0JICogaW5jcmVhc2UgdGhlIGNkY2xrIGZyZXF1ZW5jeSB3aGVu IHRoZSBjdXJyZW50Cj4gPj4gLQkgKiB2YWx1ZSBpcyB0b28gbG93LiBUaGUgb3RoZXIgb3B0aW9u IGlzIHRvIGNvbXBhcmUKPiA+PiAtCSAqIGFnYWluc3QgdGhlIGNkY2xrIGZyZXF1ZW5jeSB3ZSdy ZSBnb2luZyBoYXZlIHBvc3QKPiA+PiAtCSAqIG1vZGVzZXQgKGllLiBvbmUgd2UgY29tcHV0ZWQg dXNpbmcgb3RoZXIgY29uc3RyYWludHMpLgo+ID4+IC0JICogTmVlZCB0byBtZWFzdXJlIHdoZXRo ZXIgdXNpbmcgYSBsb3dlciBjZGNsayB3L28gSVBTCj4gPj4gLQkgKiBpcyBiZXR0ZXIgb3Igd29y c2UgdGhhbiBhIGhpZ2hlciBjZGNsayB3LyBJUFMuCj4gPj4gKwkgKiBXZSBjb21wYXJlIGFnYWlu c3QgbWF4IHdoaWNoIG1lYW5zIHdlIG11c3QgdGFrZQo+ID4+ICsJICogdGhlIGluY3JlYXNlZCBj ZGNsayByZXF1aXJlbWVudCBpbnRvIGFjY291bnQgd2hlbgo+ID4+ICsJICogY2FsY3VsYXRpbmcg dGhlIG5ldyBjZGNsay4KPiA+PiArCSAqCj4gPj4gKwkgKiBTaG91bGQgbWVhc3VyZSB3aGV0aGVy IHVzaW5nIGEgbG93ZXIgY2RjbGsgdy9vIElQUwo+ID4+ICAJICovCj4gPj4gIAlyZXR1cm4gaWxr X3BpcGVfcGl4ZWxfcmF0ZShwaXBlX2NvbmZpZykgPD0KPiA+PiAgCQlkZXZfcHJpdi0+bWF4X2Nk Y2xrX2ZyZXEgKiA5NSAvIDEwMDsKPiA+PiBAQCAtOTYwOCw2ICs5NjIxLDE4MiBAQCBzdGF0aWMg dm9pZCBicm94dG9uX21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlcyhzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqb2xkX3N0YXRlKQo+ID4+ICAJCWJyb3h0b25fc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xr KTsKPiA+PiAgfQo+ID4+ICAKPiA+PiArLyogY29tcHV0ZSB0aGUgbWF4IHJhdGUgZm9yIG5ldyBj b25maWd1cmF0aW9uICovCj4gPj4gK3N0YXRpYyBpbnQgaWxrX21heF9waXhlbF9yYXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+PiArewo+ID4+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gPj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YzsKPiA+PiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+PiArCWludCBtYXhfcGl4 ZWxfcmF0ZSA9IDA7Cj4gPj4gKwlpbnQgcGl4ZWxfcmF0ZTsKPiA+PiArCj4gPj4gKwlmb3JfZWFj aF9jcnRjKGRldiwgY3J0Yykgewo+ID4+ICsJCWlmICghY3J0Yy0+c3RhdGUtPmVuYWJsZSkKPiA+ PiArCQkJY29udGludWU7Cj4gPj4gKwo+ID4+ICsJCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGMpOwo+ID4+ICsJCXBpeGVsX3JhdGUgPSBpbGtfcGlwZV9waXhlbF9yYXRlKGludGVsX2Ny dGMtPmNvbmZpZyk7Cj4gPj4gKwo+ID4+ICsJCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNlZWQg OTUlIG9mIGNkY2xrIHdpdGggSVBTIG9uIEJEVyAqLwo+ID4+ICsJCWlmIChJU19CUk9BRFdFTEwo ZGV2KSAmJiBpbnRlbF9jcnRjLT5jb25maWctPmlwc19lbmFibGVkKQo+ID4+ICsJCQlwaXhlbF9y YXRlID0gRElWX1JPVU5EX1VQKHBpeGVsX3JhdGUgKiAxMDAsIDk1KTsKPiA+PiArCj4gPj4gKwkJ bWF4X3BpeGVsX3JhdGUgPSBtYXgobWF4X3BpeGVsX3JhdGUsIHBpeGVsX3JhdGUpOwo+ID4+ICsJ fQo+ID4+ICsKPiA+PiArCXJldHVybiBtYXhfcGl4ZWxfcmF0ZTsKPiA+PiArfQo+ID4+ICsKPiA+ PiArc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBpbnQgY2RjbGspCj4gPj4gK3sKPiA+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPj4gKwl1aW50MzJfdCB2YWwsIGRhdGE7Cj4gPj4g KwlpbnQgcmV0Owo+ID4+ICsKPiA+PiArCWlmIChXQVJOKChJOTE1X1JFQUQoTENQTExfQ1RMKSAm Cj4gPj4gKwkJICAoTENQTExfUExMX0RJU0FCTEUgfCBMQ1BMTF9QTExfTE9DSyB8Cj4gPj4gKwkJ ICAgTENQTExfQ0RfQ0xPQ0tfRElTQUJMRSB8IExDUExMX1JPT1RfQ0RfQ0xPQ0tfRElTQUJMRSB8 Cj4gPj4gKwkJICAgTENQTExfQ0QyWF9DTE9DS19ESVNBQkxFIHwgTENQTExfUE9XRVJfRE9XTl9B TExPVyB8Cj4gPj4gKwkJICAgTENQTExfQ0RfU09VUkNFX0ZDTEspKSAhPSBMQ1BMTF9QTExfTE9D SywKPiA+PiArCQkgInRyeWluZyB0byBjaGFuZ2UgY2RjbGsgZnJlcXVlbmN5IHdpdGggY2RjbGsg bm90IGVuYWJsZWRcbiIpKQo+ID4+ICsJCXJldHVybjsKPiA+PiArCj4gPj4gKwltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ID4+ICsJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVf d3JpdGUoZGV2X3ByaXYsCj4gPj4gKwkJCQkgICAgICBCRFdfUENPREVfRElTUExBWV9GUkVRX0NI QU5HRV9SRVEsIDB4MCk7Cj4gPj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9j ayk7Cj4gPj4gKwlpZiAocmV0KSB7Cj4gPj4gKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5mb3Jt IHBjb2RlIGFib3V0IGNkY2xrIGNoYW5nZVxuIik7Cj4gPj4gKwkJcmV0dXJuOwo+ID4+ICsJfQo+ ID4+ICsKPiA+PiArCXZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+ID4+ICsJdmFsIHw9IExD UExMX0NEX1NPVVJDRV9GQ0xLOwo+ID4+ICsJSTkxNV9XUklURShMQ1BMTF9DVEwsIHZhbCk7Cj4g Pj4gKwo+ID4+ICsJaWYgKHdhaXRfZm9yX2F0b21pY191cyhJOTE1X1JFQUQoTENQTExfQ1RMKSAm Cj4gPj4gKwkJCSAgICAgICBMQ1BMTF9DRF9TT1VSQ0VfRkNMS19ET05FLCAxKSkKPiA+PiArCQlE Uk1fRVJST1IoIlN3aXRjaGluZyB0byBGQ0xLIGZhaWxlZFxuIik7Cj4gPj4gKwo+ID4+ICsJdmFs ID0gSTkxNV9SRUFEKExDUExMX0NUTCk7Cj4gPj4gKwl2YWwgJj0gfkxDUExMX0NMS19GUkVRX01B U0s7Cj4gPj4gKwo+ID4+ICsJc3dpdGNoIChjZGNsaykgewo+ID4+ICsJY2FzZSA0NTAwMDA6Cj4g Pj4gKwkJdmFsIHw9IExDUExMX0NMS19GUkVRXzQ1MDsKPiA+PiArCQlkYXRhID0gMDsKPiA+PiAr CQlicmVhazsKPiA+PiArCWNhc2UgNTQwMDAwOgo+ID4+ICsJCXZhbCB8PSBMQ1BMTF9DTEtfRlJF UV81NE9fQkRXOwo+ID4+ICsJCWRhdGEgPSAxOwo+ID4+ICsJCWJyZWFrOwo+ID4+ICsJY2FzZSAz Mzc1MDA6Cj4gPj4gKwkJdmFsIHw9IExDUExMX0NMS19GUkVRXzMzN181X0JEVzsKPiA+PiArCQlk YXRhID0gMjsKPiA+PiArCQlicmVhazsKPiA+PiArCWNhc2UgNjc1MDAwOgo+ID4+ICsJCXZhbCB8 PSBMQ1BMTF9DTEtfRlJFUV82NzVfQkRXOwo+ID4+ICsJCWRhdGEgPSAzOwo+ID4+ICsJCWJyZWFr Owo+ID4+ICsJZGVmYXVsdDoKPiA+PiArCQlXQVJOKDEsICJpbnZhbGlkIGNkY2xrIGZyZXF1ZW5j eVxuIik7Cj4gPj4gKwkJcmV0dXJuOwo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCUk5MTVfV1JJVEUo TENQTExfQ1RMLCB2YWwpOwo+ID4+ICsKPiA+PiArCXZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwp Owo+ID4+ICsJdmFsICY9IH5MQ1BMTF9DRF9TT1VSQ0VfRkNMSzsKPiA+PiArCUk5MTVfV1JJVEUo TENQTExfQ1RMLCB2YWwpOwo+ID4+ICsKPiA+PiArCWlmICh3YWl0X2Zvcl9hdG9taWNfdXMoKEk5 MTVfUkVBRChMQ1BMTF9DVEwpICYKPiA+PiArCQkJCUxDUExMX0NEX1NPVVJDRV9GQ0xLX0RPTkUp ID09IDAsIDEpKQo+ID4+ICsJCURSTV9FUlJPUigiU3dpdGNoaW5nIGJhY2sgdG8gTENQTEwgZmFp bGVkXG4iKTsKPiA+PiArCj4gPj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2sp Owo+ID4+ICsJc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIEhTV19QQ09ERV9ERV9X UklURV9GUkVRX1JFUSwgZGF0YSk7Cj4gPj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMu aHdfbG9jayk7Cj4gPj4gKwo+ID4+ICsJaW50ZWxfdXBkYXRlX2NkY2xrKGRldik7Cj4gPj4gKwo+ ID4+ICsJV0FSTihjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSwKPiA+PiArCSAgICAgImNk Y2xrIHJlcXVlc3RlZCAlZCBrSHogYnV0IGdvdCAlZCBrSHpcbiIsCj4gPj4gKwkgICAgIGNkY2xr LCBkZXZfcHJpdi0+Y2RjbGtfZnJlcSk7Cj4gPj4gK30KPiA+PiArCj4gPj4gK3N0YXRpYyBpbnQg YnJvYWR3ZWxsX2NhbGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4+ICsJCQkgICAgICBpbnQgbWF4X3BpeGVsX3JhdGUpCj4gPj4gK3sKPiA+PiArCWludCBjZGNs azsKPiA+PiArCj4gPj4gKwkvKgo+ID4+ICsJICogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBm b3IgcGxhbmUgcmF0aW8KPiA+PiArCSAqIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3Vw cG9ydGVkLgo+ID4+ICsJICovCj4gPj4gKwlpZiAobWF4X3BpeGVsX3JhdGUgPiA1NDAwMDApCj4g Pj4gKwkJY2RjbGsgPSA2NzUwMDA7Cj4gPj4gKwllbHNlIGlmIChtYXhfcGl4ZWxfcmF0ZSA+IDQ1 MDAwMCkKPiA+PiArCQljZGNsayA9IDU0MDAwMDsKPiA+PiArCWVsc2UgaWYgKG1heF9waXhlbF9y YXRlID4gMzM3NTAwKQo+ID4+ICsJCWNkY2xrID0gNDUwMDAwOwo+ID4+ICsJZWxzZQo+ID4+ICsJ CWNkY2xrID0gMzM3NTAwOwo+ID4+ICsKPiA+PiArCS8qCj4gPj4gKwkgKiBGSVhNRSBtb3ZlIHRo ZSBjZGNsayBjYWNsdWxhdGlvbiB0bwo+ID4+ICsJICogY29tcHV0ZV9jb25maWcoKSBzbyB3ZSBj YW4gZmFpbCBncmFjZWd1bGx5Lgo+ID4+ICsJICovCj4gPj4gKwlpZiAoY2RjbGsgPiBkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXEpIHsKPiA+PiArCQlEUk1fRVJST1IoInJlcXVlc3RlZCBjZGNsayAo JWQga0h6KSBleGNlZWRzIG1heCAoJWQga0h6KVxuIiwKPiA+PiArCQkJICBjZGNsaywgZGV2X3By aXYtPm1heF9jZGNsa19mcmVxKTsKPiA+PiArCQljZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtf ZnJlcTsKPiA+PiArCX0KPiA+PiArCj4gPj4gKwlyZXR1cm4gY2RjbGs7Cj4gPj4gK30KPiA+PiAr Cj4gPj4gK3N0YXRpYyBpbnQgYnJvYWR3ZWxsX21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+PiArewo+ID4+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiA+PiArCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YzsKPiA+PiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+ PiArCWludCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRlKGRldl9wcml2KTsKPiA+PiAr CWludCBjZGNsaywgaTsKPiA+PiArCj4gPj4gKwljZGNsayA9IGJyb2Fkd2VsbF9jYWxjX2NkY2xr KGRldl9wcml2LCBtYXhfcGl4Y2xrKTsKPiA+PiArCj4gPj4gKwlpZiAoY2RjbGsgPT0gZGV2X3By aXYtPmNkY2xrX2ZyZXEpCj4gPj4gKwkJcmV0dXJuIDA7Cj4gPj4gKwo+ID4+ICsJLyogYWRkIGFs bCBhY3RpdmUgcGlwZXMgdG8gdGhlIHN0YXRlICovCj4gPj4gKwlmb3JfZWFjaF9jcnRjKHN0YXRl LT5kZXYsIGNydGMpIHsKPiA+PiArCQlpZiAoIWNydGMtPnN0YXRlLT5lbmFibGUpCj4gPj4gKwkJ CWNvbnRpbnVlOwo+ID4+ICsKPiA+PiArCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gPj4gKwkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKPiA+ PiArCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4gPj4gKwl9Cj4gPj4gKwo+ID4+ICsJ LyogZGlzYWJsZS9lbmFibGUgYWxsIGN1cnJlbnRseSBhY3RpdmUgcGlwZXMgd2hpbGUgd2UgY2hh bmdlIGNkY2xrICovCj4gPj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBj cnRjX3N0YXRlLCBpKQo+ID4+ICsJCWlmIChjcnRjX3N0YXRlLT5lbmFibGUpCj4gPj4gKwkJCWNy dGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gPj4gKwo+ID4+ICsJcmV0dXJuIDA7Cj4g Pj4gK30KPiA+PiArCj4gPj4gK3N0YXRpYyB2b2lkIGJyb2Fkd2VsbF9tb2Rlc2V0X2dsb2JhbF9y ZXNvdXJjZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4+ICt7Cj4gPj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiA+PiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPj4gKwlpbnQgbWF4X3Bp eGVsX3JhdGUgPSBpbGtfbWF4X3BpeGVsX3JhdGUoZGV2X3ByaXYpOwo+ID4+ICsJaW50IHJlcV9j ZGNsayA9IGJyb2Fkd2VsbF9jYWxjX2NkY2xrKGRldl9wcml2LCBtYXhfcGl4ZWxfcmF0ZSk7Cj4g Pj4gKwo+ID4+ICsJaWYgKHJlcV9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSkKPiA+PiAr CQlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPiA+PiArfQo+ID4+ICsKPiA+ PiAgc3RhdGljIGludCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiA+PiAgCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ID4+ICB7Cj4gPj4gQEAgLTEyNzg4LDggKzEyOTc3LDEyIEBAIHN0YXRpYyBpbnQgX19p bnRlbF9zZXRfbW9kZV9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4+ ICAJICogbW9kZSBzZXQgb24gdGhpcyBjcnRjLiAgRm9yIG90aGVyIGNydGNzIHdlIG5lZWQgdG8g dXNlIHRoZQo+ID4+ICAJICogYWRqdXN0ZWRfbW9kZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVjdGx5 Lgo+ID4+ICAJICovCj4gPj4gLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0JST1hUT04o ZGV2KSkgewo+ID4+IC0JCXJldCA9IHZhbGxleXZpZXdfbW9kZXNldF9nbG9iYWxfcGlwZXMoc3Rh dGUpOwo+ID4+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikgfHwg SVNfQlJPQURXRUxMKGRldikpIHsKPiA+PiArCQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElT X0JST1hUT04oZGV2KSkKPiA+PiArCQkJcmV0ID0gdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9w aXBlcyhzdGF0ZSk7Cj4gPj4gKwkJZWxzZQo+ID4+ICsJCQlyZXQgPSBicm9hZHdlbGxfbW9kZXNl dF9nbG9iYWxfcGlwZXMoc3RhdGUpOwo+ID4+ICsKPiA+PiAgCQlpZiAocmV0KQo+ID4+ICAJCQly ZXR1cm4gcmV0Owo+ID4+ICAJfQo+ID4+IEBAIC0xNDY3Nyw2ICsxNDg3MCw5IEBAIHN0YXRpYyB2 b2lkIGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+ICAJCWRl dl9wcml2LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluID0gaXZiX21hbnVhbF9mZGlfbGlua190cmFp bjsKPiA+PiAgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYp KSB7Cj4gPj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPSBoc3dfZmRpX2xp bmtfdHJhaW47Cj4gPj4gKwkJaWYgKElTX0JST0FEV0VMTChkZXYpKQo+ID4+ICsJCQlkZXZfcHJp di0+ZGlzcGxheS5tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgPQo+ID4+ICsJCQkJYnJvYWR3ZWxs X21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlczsKPiA+PiAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklF VyhkZXYpKSB7Cj4gPj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9nbG9iYWxfcmVzb3Vy Y2VzID0KPiA+PiAgCQkJdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXM7Cj4gPj4g LS0gCj4gPj4gMS45LjEKPiA+Pgo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4+IEludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPgo+ID4gLS0gCj4gPiBKYW5pIE5pa3VsYSwg SW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPiAKPiAtLSAKPiBKYW5pIE5pa3Vs YSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==