From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v6 8/8] drm/i915: HSW cdclk support Date: Thu, 04 Jun 2015 16:26:42 +0300 Message-ID: <874mmnbo4t.fsf@intel.com> References: <1433335514-4156-1-git-send-email-mika.kahola@intel.com> <1433335514-4156-9-git-send-email-mika.kahola@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 E1AC86E38A for ; Thu, 4 Jun 2015 06:24:24 -0700 (PDT) In-Reply-To: <1433335514-4156-9-git-send-email-mika.kahola@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kahola , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwMyBKdW4gMjAxNSwgTWlrYSBLYWhvbGEgPG1pa2Eua2Fob2xhQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPgo+IEltcGxlbWVudCBzdXBwb3J0IGZvciBjaGFuZ2luZyB0aGUgY2RjbGsgZnJlcXVl bmN5IGR1cmluZyBydW50aW1lIG9uCj4gSFNXLiBWTFYvQ0hWIGFscmVhZHkgaGF2ZSBzdXBwb3J0 IGZvciB0aGlzLCBzbyB3ZSBjYW4gZm9sbG93IHRoZWlyCj4gZXhhbXBsZSBmb3IgdGhlIG1vc3Qg cGFydC4gT25seSB0aGUgYWN0dWFsIGhhcmR3YXJlIHByb2dyYW1taW5nIGRpZmZlcnMsCj4gdGhl IHJlc3QgaXMgcHJldHR5IG11Y2ggdGhlIHNhbWUuCgpJJ20gY2hpY2tlbmluZyBvdXQgb2YgdGhp cyBvbmUuIFRoYW5rcyB0byB0aGUgbmV3IHBhdGNoIG9yZGVyaW5nIHdlIGNhbgpyZXR1cm4gdG8g aXQgbGF0ZXIgaWYgbmVlZGVkLgoKQlIsCkphbmkuCgo+Cj4gVGhlIHBpcGUgcGl4ZWwgcmF0ZSBz dHVmZiBpcyBoYW5kbGVkIGEgYml0IGRpZmZlcmVudGx5IGZvciBub3cgZHVlIHRvCj4gdGhlIGRp ZmZlcmVuY2UgaW4gcGNoIHZzLiBnbWNoIHBmaXQgaGFuZGxpbmcuIEV2ZW50dWFsbHkgd2Ugc2hv dWxkIHVuaWZ5Cj4gdGhhdCBwYXJ0IHRvIGVsaW1pbmF0ZSB3aGF0IGlzIGVzc2VudGlhbGx5IGR1 cGxpY2F0ZWQgY29kZS4KPgo+IHYyOiBHcmFiIHJwcy5od19sb2NrIGFyb3VuZCBzYW5keWJyaWRn ZV9wY29kZV93cml0ZSgpCj4gdjM6IFJlYmFzZSBkdWUgdG8gcG93ZXIgd2VsbCB2cy4gLmdsb2Jh bF9yZXNvdXJjZXMoKSByZW9yZGVyaW5nCj4gdjQ6IFJlYmFzZWQgdG8gdGhlIGxhdGVzdAo+IHY1 OiBSZWZvcm1hdHRpbmcgJ2hhc3dlbGxfbW9kZXNldF9nbG9iYWxfcGlwZXMnIGZ1bmN0aW9uIHRv Cj4gICAgIHN1cHBvcnQgYXRvbWljIHN0YXRlCj4gdjY6IFNodWZmbGluZyB0aGUgcGF0Y2ggb3Jk ZXIgc28gdGhlIEJyb2Fkd2VsbCBDRCBjbG9jayBwYXRjaAo+ICAgICBjYW4gYmUgYXBwbGllZCBi ZWZvcmUgdGhpcyBIYXN3ZWxsIENEIGNsb2NrIHBhdGNoCj4gdjc6IEZpeCBmb3IgcGF0Y2ggc3R5 bGUgcHJvYmxlbXMKPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWlrYSBLYWhvbGEgPG1pa2Eu a2Fob2xhQGludGVsLmNvbT4KPgo+IEF1dGhvcjogICAgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCAgICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIDIgZmlsZXMg Y2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiBpbmRleCAwZjcyYzBlLi40MThkMTQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4gQEAgLTY3MDUsNiArNjcwNSw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2Vs bHMgewo+ICAjZGVmaW5lCSAgR0VONl9QQ09ERV9SRUFEX1JDNlZJRFMJCTB4NQo+ICAjZGVmaW5l ICAgICBHRU42X0VOQ09ERV9SQzZfVklEKG12KQkJKCgobXYpIC0gMjQ1KSAvIDUpCj4gICNkZWZp bmUgICAgIEdFTjZfREVDT0RFX1JDNl9WSUQodmlkcykJCSgoKHZpZHMpICogNSkgKyAyNDUpCj4g KyNkZWZpbmUgICBIU1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEJCTB4MTcKPiAgI2RlZmluZSAg IEJEV19QQ09ERV9ESVNQTEFZX0ZSRVFfQ0hBTkdFX1JFUQkweDE4Cj4gICNkZWZpbmUgICBHRU45 X1BDT0RFX1JFQURfTUVNX0xBVEVOQ1kJCTB4Ngo+ICAjZGVmaW5lICAgICBHRU45X01FTV9MQVRF TkNZX0xFVkVMX01BU0sJCTB4RkYKPiBAQCAtNzE2Nyw2ICs3MTY4LDcgQEAgZW51bSBza2xfZGlz cF9wb3dlcl93ZWxscyB7Cj4gICNkZWZpbmUgIExDUExMX1BMTF9MT0NLCQkJKDE8PDMwKQo+ICAj ZGVmaW5lICBMQ1BMTF9DTEtfRlJFUV9NQVNLCQkoMzw8MjYpCj4gICNkZWZpbmUgIExDUExMX0NM S19GUkVRXzQ1MAkJKDA8PDI2KQo+ICsjZGVmaW5lICBMQ1BMTF9DTEtfRlJFUV9BTFRfSFNXCQko MTw8MjYpIC8qIDMzNy41IChVTFgpIG9yIDU0MCAqLwo+ICAjZGVmaW5lICBMQ1BMTF9DTEtfRlJF UV81NE9fQkRXCQkoMTw8MjYpCj4gICNkZWZpbmUgIExDUExMX0NMS19GUkVRXzMzN181X0JEVwko Mjw8MjYpCj4gICNkZWZpbmUgIExDUExMX0NMS19GUkVRXzY3NV9CRFcJCSgzPDwyNikKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYjFlMjA2OS4uNGI5OTA3ZCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNTc1MSw3ICs1NzUxLDE2 IEBAIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAgCj4gLQlpZiAoSVNfQlJPQURXRUxMKGRldikpICB7Cj4gKwlpZiAoSVNf SEFTV0VMTChkZXYpKSB7Cj4gKwkJaWYgKEk5MTVfUkVBRChGVVNFX1NUUkFQKSAmIEhTV19DRENM S19MSU1JVCkKPiArCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDUwMDAwOwo+ICsJCWVs c2UgaWYgKElTX0hTV19VTFgoZGV2KSkKPiArCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0g MzM3NTAwOwo+ICsJCWVsc2UgaWYgKElTX0hTV19VTFQoZGV2KSkKPiArCQkJZGV2X3ByaXYtPm1h eF9jZGNsa19mcmVxID0gNDUwMDAwOwo+ICsJCWVsc2UKPiArCQkJZGV2X3ByaXYtPm1heF9jZGNs a19mcmVxID0gNTQwMDAwOwo+ICsJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSkgIHsKPiAg CQkvKgo+ICAJCSAqIEZJWE1FIHdpdGggZXh0cmEgY29vbGluZyB3ZSBjYW4gYWxsb3cKPiAgCQkg KiA1NDAgTUh6IGZvciBVTFggYW5kIDY3NSBNaHogZm9yIFVMVC4KPiBAQCAtOTc1NSw2ICs5NzY0 LDgwIEBAIHN0YXRpYyBpbnQgYnJvYWR3ZWxsX2NhbGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAJcmV0dXJuIGNkY2xrOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9p ZCBoYXN3ZWxsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY2RjbGspCj4g K3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gKwl1aW50MzJfdCB2YWw7Cj4gKwo+ICsJaWYgKFdBUk4oKEk5MTVfUkVBRChMQ1BMTF9D VEwpICYKPiArCQkgIChMQ1BMTF9QTExfRElTQUJMRSB8IExDUExMX1BMTF9MT0NLIHwKPiArCQkg ICBMQ1BMTF9DRF9DTE9DS19ESVNBQkxFIHwgTENQTExfUk9PVF9DRF9DTE9DS19ESVNBQkxFIHwK PiArCQkgICBMQ1BMTF9DRDJYX0NMT0NLX0RJU0FCTEUgfCBMQ1BMTF9QT1dFUl9ET1dOX0FMTE9X IHwKPiArCQkgICBMQ1BMTF9DRF9TT1VSQ0VfRkNMSykpICE9IExDUExMX1BMTF9MT0NLLAo+ICsJ CSAidHJ5aW5nIHRvIGNoYW5nZSBjZGNsayBmcmVxdWVuY3kgd2l0aCBjZGNsayBub3QgZW5hYmxl ZFxuIikpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+ ICsJdmFsICY9IH5MQ1BMTF9DTEtfRlJFUV9NQVNLOwo+ICsKPiArCXN3aXRjaCAoY2RjbGspIHsK PiArCWNhc2UgNDUwMDAwOgo+ICsJCXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV80NTA7Cj4gKwkJYnJl YWs7Cj4gKwljYXNlIDMzNzUwMDoKPiArCWNhc2UgNTQwMDAwOgo+ICsJCXZhbCB8PSBMQ1BMTF9D TEtfRlJFUV9BTFRfSFNXOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlXQVJOKDEsICJp bnZhbGlkIGNkY2xrIGZyZXF1ZW5jeVxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCUk5 MTVfV1JJVEUoTENQTExfQ1RMLCB2YWwpOwo+ICsKPiArCWlmIChJU19IU1dfVUxYKGRldikpIHsK PiArCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJCXNhbmR5YnJpZGdl X3Bjb2RlX3dyaXRlKGRldl9wcml2LCBIU1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEsCj4gKwkJ CQkJY2RjbGsgPT0gMzM3NTAwKTsKPiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdf bG9jayk7Cj4gKwl9Cj4gKwo+ICsJaW50ZWxfdXBkYXRlX2NkY2xrKGRldik7Cj4gKwo+ICsJV0FS TihjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSwKPiArCSAgICAgImNkY2xrIHJlcXVlc3Rl ZCAlZCBrSHogYnV0IGdvdCAlZCBrSHpcbiIsCj4gKwkgICAgIGNkY2xrLCBkZXZfcHJpdi0+Y2Rj bGtfZnJlcSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaGFzd2VsbF9jYWxjX2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgICAgaW50IG1heF9waXhlbF9y YXRlKQo+ICt7Cj4gKwlpbnQgY2RjbGs7Cj4gKwo+ICsJLyoKPiArCSAqIEZJWE1FIHNob3VsZCBh bHNvIGFjY291bnQgZm9yIHBsYW5lIHJhdGlvCj4gKwkgKiBvbmNlIDY0YnBwIHBpeGVsIGZvcm1h dHMgYXJlIHN1cHBvcnRlZC4KPiArCSAqLwo+ICsJaWYgKG1heF9waXhlbF9yYXRlID4gNDUwMDAw KQo+ICsJCWNkY2xrID0gNTQwMDAwOwo+ICsJZWxzZSBpZiAobWF4X3BpeGVsX3JhdGUgPiAzMzc1 MDAgfHwgIUlTX0hTV19VTFgoZGV2X3ByaXYpKQo+ICsJCWNkY2xrID0gNDUwMDAwOwo+ICsJZWxz ZQo+ICsJCWNkY2xrID0gMzM3NTAwOwo+ICsKPiArCS8qCj4gKwkgKiBGSVhNRSBtb3ZlIHRoZSBj ZGNsayBjYWNsdWxhdGlvbiB0bwo+ICsJICogY29tcHV0ZV9jb25maWcoKSBzbyB3ZSBjYW4gZmFp bCBncmFjZWd1bGx5Lgo+ICsJICovCj4gKwlpZiAoY2RjbGsgPiBkZXZfcHJpdi0+bWF4X2NkY2xr X2ZyZXEpIHsKPiArCQlEUk1fRVJST1IoInJlcXVlc3RlZCBjZGNsayAoJWQga0h6KSBleGNlZWRz IG1heCAoJWQga0h6KVxuIiwKPiArCQkJICBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNsa19mcmVx KTsKPiArCQljZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKPiArCX0KPiArCj4gKwly ZXR1cm4gY2RjbGs7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgYnJvYWR3ZWxsX21vZGVzZXRfZ2xv YmFsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiBAQCAt OTc5Nyw2ICs5ODgwLDQ5IEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9tb2Rlc2V0X2dsb2JhbF9y ZXNvdXJjZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCWJyb2Fkd2VsbF9z ZXRfY2RjbGsoZGV2LCByZXFfY2RjbGspOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGhhc3dlbGxf bW9kZXNldF9nbG9iYWxfcGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5k ZXYpOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlOwo+ICsJaW50IG1heF9waXhjbGsgPSBpbGtfbWF4X3BpeGVsX3JhdGUoZGV2 X3ByaXYpOwo+ICsJaW50IGNkY2xrLCBpOwo+ICsKPiArCWNkY2xrID0gaGFzd2VsbF9jYWxjX2Nk Y2xrKGRldl9wcml2LCBtYXhfcGl4Y2xrKTsKPiArCj4gKwlpZiAoY2RjbGsgPT0gZGV2X3ByaXYt PmNkY2xrX2ZyZXEpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJLyogYWRkIGFsbCBhY3RpdmUgcGlw ZXMgdG8gdGhlIHN0YXRlICovCj4gKwlmb3JfZWFjaF9jcnRjKHN0YXRlLT5kZXYsIGNydGMpIHsK PiArCQlpZiAoIWNydGMtPnN0YXRlLT5lbmFibGUpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlj cnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gKwkJ aWYgKElTX0VSUihjcnRjX3N0YXRlKSkKPiArCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7 Cj4gKwl9Cj4gKwo+ICsJLyogZGlzYWJsZS9lbmFibGUgYWxsIGN1cnJlbnRseSBhY3RpdmUgcGlw ZXMgd2hpbGUgd2UgY2hhbmdlIGNkY2xrICovCj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0 YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQo+ICsJCWlmIChjcnRjX3N0YXRlLT5lbmFibGUpCj4g KwkJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIGhhc3dlbGxfbW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IHN0YXRlLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICsJaW50IG1heF9waXhlbF9yYXRlID0gaWxrX21heF9waXhl bF9yYXRlKGRldl9wcml2KTsKPiArCWludCByZXFfY2RjbGsgPSBoYXN3ZWxsX2NhbGNfY2RjbGso ZGV2X3ByaXYsIG1heF9waXhlbF9yYXRlKTsKPiArCj4gKwlpZiAocmVxX2NkY2xrICE9IGRldl9w cml2LT5jZGNsa19mcmVxKSB7Cj4gKwkJaGFzd2VsbF9zZXRfY2RjbGsoZGV2LCByZXFfY2RjbGsp Owo+ICsJfQo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2Nr KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiBAQCAtMTI5NzcsMTEgKzEzMTAzLDEzIEBAIHN0YXRp YyBpbnQgX19pbnRlbF9zZXRfbW9kZV9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQo+ICAJICogbW9kZSBzZXQgb24gdGhpcyBjcnRjLiAgRm9yIG90aGVyIGNydGNzIHdlIG5l ZWQgdG8gdXNlIHRoZQo+ICAJICogYWRqdXN0ZWRfbW9kZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVj dGx5Lgo+ICAJICovCj4gLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0JST1hUT04oZGV2 KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJ U19CUk9YVE9OKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikgfHwgSVNfSEFTV0VMTChkZXYpKSB7 Cj4gIAkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpCj4gIAkJCXJl dCA9IHZhbGxleXZpZXdfbW9kZXNldF9nbG9iYWxfcGlwZXMoc3RhdGUpOwo+IC0JCWVsc2UKPiAr CQllbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSkKPiAgCQkJcmV0ID0gYnJvYWR3ZWxsX21vZGVz ZXRfZ2xvYmFsX3BpcGVzKHN0YXRlKTsKPiArCQllbHNlCj4gKwkJCXJldCA9IGhhc3dlbGxfbW9k ZXNldF9nbG9iYWxfcGlwZXMoc3RhdGUpOwo+ICAKPiAgCQlpZiAocmV0KQo+ICAJCQlyZXR1cm4g cmV0Owo+IEBAIC0xNDg3Myw2ICsxNTAwMSw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlz cGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCWlmIChJU19CUk9BRFdFTEwoZGV2KSkK PiAgCQkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzID0KPiAgCQkJ CWJyb2Fkd2VsbF9tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXM7Cj4gKwkJZWxzZQo+ICsJCQlkZXZf cHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgPQo+ICsJCQkJaGFzd2VsbF9t b2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXM7Cj4gIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2 KSkgewo+ICAJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfZ2xvYmFsX3Jlc291cmNlcyA9Cj4g IAkJCXZhbGxleXZpZXdfbW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzOwo+IC0tIAo+IDEuOS4xCj4K PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0g CkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=