From mboxrd@z Thu Jan 1 00:00:00 1970 From: Damien Lespiau Subject: Re: [PATCH v4 10/12] drm/i915: HSW cdclk support Date: Fri, 29 May 2015 12:30:41 +0100 Message-ID: <20150529113041.GB28280@strange.ger.corp.intel.com> References: <1432282962-3530-1-git-send-email-mika.kahola@intel.com> <1432282962-3530-11-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 43CB46E6B7 for ; Fri, 29 May 2015 04:30:43 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1432282962-3530-11-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBNYXkgMjIsIDIwMTUgYXQgMTE6MjI6NDBBTSArMDMwMCwgTWlrYSBLYWhvbGEgd3Jv dGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiAKPiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgY2hhbmdpbmcgdGhlIGNkY2xrIGZyZXF1ZW5j eSBkdXJpbmcgcnVudGltZSBvbgo+IEhTVy4gVkxWL0NIViBhbHJlYWR5IGhhdmUgc3VwcG9ydCBm b3IgdGhpcywgc28gd2UgY2FuIGZvbGxvdyB0aGVpcgo+IGV4YW1wbGUgZm9yIHRoZSBtb3N0IHBh cnQuIE9ubHkgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcm9ncmFtbWluZyBkaWZmZXJzLAo+IHRoZSBy ZXN0IGlzIHByZXR0eSBtdWNoIHRoZSBzYW1lLgo+IAo+IFRoZSBwaXBlIHBpeGVsIHJhdGUgc3R1 ZmYgaXMgaGFuZGxlZCBhIGJpdCBkaWZmZXJlbnRseSBmb3Igbm93IGR1ZSB0bwo+IHRoZSBkaWZm ZXJlbmNlIGluIHBjaCB2cy4gZ21jaCBwZml0IGhhbmRsaW5nLiBFdmVudHVhbGx5IHdlIHNob3Vs ZCB1bmlmeQo+IHRoYXQgcGFydCB0byBlbGltaW5hdGUgd2hhdCBpcyBlc3NlbnRpYWxseSBkdXBs aWNhdGVkIGNvZGUuCj4gCj4gdjI6IEdyYWIgcnBzLmh3X2xvY2sgYXJvdW5kIHNhbmR5YnJpZGdl X3Bjb2RlX3dyaXRlKCkKPiB2MzogUmViYXNlIGR1ZSB0byBwb3dlciB3ZWxsIHZzLiAuZ2xvYmFs X3Jlc291cmNlcygpIHJlb3JkZXJpbmcKPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IAo+IHYzOiBSZWJhc2VkIHRvIHRo ZSBsYXRlc3QKPiB2NDogUmVmb3JtYXR0aW5nICdoYXN3ZWxsX21vZGVzZXRfZ2xvYmFsX3BpcGVz JyBmdW5jdGlvbiB0bwo+ICAgICBzdXBwb3J0IGF0b21pYyBzdGF0ZQo+IAo+IFNpZ25lZC1vZmYt Ynk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cj4gCj4gQXV0aG9yOiAgICBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQoKQXBh cnQgZnJvbSB0aGUgc21hbGwgcmVtYXJrIGJlbG93LCBpdCBsb29rcyBsaWtlIGl0IGRvZXMgd2hh dCB0aGUgc3BlYwp0ZWxsIHVzIHRvIGRvLgoKSG93ZXZlciB0aGVyZSBhcmUgYSBmZXcgZXh0cmEg Y29tbWVudHM6CgogIC0gSSByZW1lbWJlciBzb21lb25lIHNheWluZyBjaGFuZ2luZyBDRENMSyBo YXNuJ3QgYmVlbiB2YWxpZGF0ZWQgb24KICAgIEhTVywgdGhhdCdzIHVzdWFsbHkgYSByZWQgZmxh Zy4gRXZlbiBpZiBpdCBzZWVtcyBsaWtlIGl0J3Mgd29ya2luZywKICAgIEkndmUgbm8gaWRlYSB3 aGF0IHRoZSBwY29kZSBkb2VzIHdpdGggdGhlIG5vdGlmaWNhdGlvbiBvbiBVTFggZm9yCiAgICBp bnN0YW5jZQogIC0gQ2hhbmdpbmcgQ0RDTEsgbWVhbnMgd2UgaGF2ZSB0byBicmluZyB3aG9sZSBk aXNwbGF5IGRvd24gYW5kIHVwCiAgICBhZ2Fpbiwgd2hpY2ggd2lsbCBtYWtlIHRoZSBjdXJyZW50 IGRpc3BsYXkgZmxpY2tlciB3aGVuIGhvdHBsdWdnaW5nCiAgICBhIHNjcmVlbiB0aGF0IG5lZWRz IGEgQ0RDTEsgYnVtcCBmb3IgaW5zdGFuY2UuCiAgLSBpdCdkIGJlIG5pY2UgdG8gaGF2ZSBzb21l IGlkZWEgb2YgdGhlIHBvd2VyIGdhaW4gcnVubmluZyBhdCBhIGxvd2VyCiAgICBmcmVxdWVuY3kK Ci0tIApEYW1pZW4KCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICAg MyArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE2MSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDE1OSBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGlu ZGV4IDE0MzY2YzguLjAxNWZlMTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAt NjcwMSw2ICs2NzAxLDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICNkZWZpbmUJ ICBHRU42X1BDT0RFX1JFQURfUkM2VklEUwkJMHg1Cj4gICNkZWZpbmUgICAgIEdFTjZfRU5DT0RF X1JDNl9WSUQobXYpCQkoKChtdikgLSAyNDUpIC8gNSkKPiAgI2RlZmluZSAgICAgR0VONl9ERUNP REVfUkM2X1ZJRCh2aWRzKQkJKCgodmlkcykgKiA1KSArIDI0NSkKPiArI2RlZmluZSAgIEhTV19Q Q09ERV9ERV9XUklURV9GUkVRX1JFUQkJMHgxNwo+ICAjZGVmaW5lICAgR0VOOV9QQ09ERV9SRUFE X01FTV9MQVRFTkNZCQkweDYKPiAgI2RlZmluZSAgICAgR0VOOV9NRU1fTEFURU5DWV9MRVZFTF9N QVNLCQkweEZGCj4gICNkZWZpbmUgICAgIEdFTjlfTUVNX0xBVEVOQ1lfTEVWRUxfMV81X1NISUZU CTgKPiBAQCAtNzE1OSwxMCArNzE2MCwxMiBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsK PiAgI2RlZmluZSAgTENQTExfUExMX0xPQ0sJCQkoMTw8MzApCj4gICNkZWZpbmUgIExDUExMX0NM S19GUkVRX01BU0sJCSgzPDwyNikKPiAgI2RlZmluZSAgTENQTExfQ0xLX0ZSRVFfNDUwCQkoMDw8 MjYpCj4gKyNkZWZpbmUgIExDUExMX0NMS19GUkVRX0FMVF9IU1cJCSgxPDwyNikgLyogMzM3LjUg KFVMWCkgb3IgNTQwICovCj4gICNkZWZpbmUgIExDUExMX0NMS19GUkVRXzU0T19CRFcJCSgxPDwy NikKPiAgI2RlZmluZSAgTENQTExfQ0xLX0ZSRVFfMzM3XzVfQkRXCSgyPDwyNikKPiAgI2RlZmlu ZSAgTENQTExfQ0xLX0ZSRVFfNjc1X0JEVwkJKDM8PDI2KQo+ICAjZGVmaW5lICBMQ1BMTF9DRF9D TE9DS19ESVNBQkxFCQkoMTw8MjUpCj4gKyNkZWZpbmUgIExDUExMX1JPT1RfQ0RfQ0xPQ0tfRElT QUJMRQkoMTw8MjQpCj4gICNkZWZpbmUgIExDUExMX0NEMlhfQ0xPQ0tfRElTQUJMRQkoMTw8MjMp Cj4gICNkZWZpbmUgIExDUExMX1BPV0VSX0RPV05fQUxMT1cJCSgxPDwyMikKPiAgI2RlZmluZSAg TENQTExfQ0RfU09VUkNFX0ZDTEsJCSgxPDwyMSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gaW5kZXggZmViZjk5My4uNTU2ZDBlYzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gQEAgLTU1NDUsNyArNTU0NSwxNiBAQCBzdGF0aWMgdm9pZCBpbnRl bF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0J aWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+ICsJaWYgKElTX0hBU1dFTEwoZGV2KSkgewo+ICsJ CWlmIChJOTE1X1JFQUQoRlVTRV9TVFJBUCkgJiBIU1dfQ0RDTEtfTElNSVQpCj4gKwkJCWRldl9w cml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPiArCQllbHNlIGlmIChJU19IU1dfVUxYKGRl dikpCj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDMzNzUwMDsKPiArCQllbHNlIGlm IChJU19IU1dfVUxUKGRldikpCj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAw MDsKPiArCQllbHNlCj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDU0MDAwMDsKPiAr CX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4gIAkJZGV2X3ByaXYtPm1heF9jZGNs a19mcmVxID0gNDAwMDAwOwo+ICAJfSBlbHNlIHsKPiAgCQkvKiBvdGhlcndpc2UgYXNzdW1lIGNk Y2xrIGlzIGZpeGVkICovCj4gQEAgLTk0MDQsNiArOTQxMywxMzkgQEAgc3RhdGljIHZvaWQgYnJv eHRvbl9tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9s ZF9zdGF0ZSkKPiAgCQlicm94dG9uX3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7Cj4gIH0KPiAg Cj4gKy8qIGNvbXB1dGUgdGhlIG1heCByYXRlIGZvciBuZXcgY29uZmlndXJhdGlvbiAqLwo+ICtz dGF0aWMgaW50IGlsa19tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ ICsJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gKwlpbnQgbWF4X3BpeGVsX3JhdGUgPSAwOwo+ ICsKPiArCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7Cj4gKwkJaWYgKGNydGMtPm5l d19lbmFibGVkKQo+ICsJCQltYXhfcGl4ZWxfcmF0ZSA9IG1heCgoaW50KW1heF9waXhlbF9yYXRl LAo+ICsJCQkJCSAgICAgKGludClpbGtfcGlwZV9waXhlbF9yYXRlKGNydGMtPmNvbmZpZykpOwo+ ICsJfQo+ICsKPiArCXJldHVybiBtYXhfcGl4ZWxfcmF0ZTsKPiArfQoKbmV3X2VuYWJsZWQgZG9l c24ndCBsb29rIGxpa2Ugd2hhdCB3ZSB3YW50IHRvIGxvb2sgYXQsIGl0IGxvb2tzIGxpa2UgYQp0 ZW1wb3JhcnkgZmllbGQgd2Ugc2hvdWxkbid0IGJlIHVzaW5nIGluIG5ldyBjb2RlLiBNYXliZQpj cnRjLT5zdGF0ZS0+ZW5hYmxlIGluc3RlYWQ/Cgo+ICsKPiArc3RhdGljIGludCBoYXN3ZWxsX2Nh bGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgICBp bnQgbWF4X3BpeGVsX3JhdGUpCj4gK3sKPiArCWludCBjZGNsazsKPiArCj4gKwkvKgo+ICsJICog RklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KPiArCSAqIG9uY2UgNjRi cHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgo+ICsJICovCj4gKwlpZiAobWF4X3BpeGVs X3JhdGUgPiA0NTAwMDApCj4gKwkJY2RjbGsgPSA1NDAwMDA7Cj4gKwllbHNlIGlmIChtYXhfcGl4 ZWxfcmF0ZSA+IDMzNzUwMCB8fCAhSVNfSFNXX1VMWChkZXZfcHJpdikpCj4gKwkJY2RjbGsgPSA0 NTAwMDA7Cj4gKwllbHNlCj4gKwkJY2RjbGsgPSAzMzc1MDA7Cj4gKwo+ICsJLyoKPiArCSAqIEZJ WE1FIG1vdmUgdGhlIGNkY2xrIGNhY2x1bGF0aW9uIHRvCj4gKwkgKiBjb21wdXRlX2NvbmZpZygp IHNvIHdlIGNhbiBmYWlsIGdyYWNlZ3VsbHkuCj4gKwkgKi8KPiArCWlmIChjZGNsayA+IGRldl9w cml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ICsJCURSTV9FUlJPUigicmVxdWVzdGVkIGNkY2xrICgl ZCBrSHopIGV4Y2VlZHMgbWF4ICglZCBrSHopXG4iLAo+ICsJCQkgIGNkY2xrLCBkZXZfcHJpdi0+ bWF4X2NkY2xrX2ZyZXEpOwo+ICsJCWNkY2xrID0gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxOwo+ ICsJfQo+ICsKPiArCXJldHVybiBjZGNsazsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaGFzd2Vs bF9zZXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNkY2xrKQo+ICt7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJ dWludDMyX3QgdmFsOwo+ICsKPiArCWlmIChXQVJOKChJOTE1X1JFQUQoTENQTExfQ1RMKSAmCj4g KwkJICAoTENQTExfUExMX0RJU0FCTEUgfCBMQ1BMTF9QTExfTE9DSyB8Cj4gKwkJICAgTENQTExf Q0RfQ0xPQ0tfRElTQUJMRSB8IExDUExMX1JPT1RfQ0RfQ0xPQ0tfRElTQUJMRSB8Cj4gKwkJICAg TENQTExfQ0QyWF9DTE9DS19ESVNBQkxFIHwgTENQTExfUE9XRVJfRE9XTl9BTExPVyB8Cj4gKwkJ ICAgTENQTExfQ0RfU09VUkNFX0ZDTEspKSAhPSBMQ1BMTF9QTExfTE9DSywKPiArCQkgInRyeWlu ZyB0byBjaGFuZ2UgY2RjbGsgZnJlcXVlbmN5IHdpdGggY2RjbGsgbm90IGVuYWJsZWRcbiIpKQo+ ICsJCXJldHVybjsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQoTENQTExfQ1RMKTsKPiArCXZhbCAm PSB+TENQTExfQ0xLX0ZSRVFfTUFTSzsKPiArCj4gKwlzd2l0Y2ggKGNkY2xrKSB7Cj4gKwljYXNl IDQ1MDAwMDoKPiArCQl2YWwgfD0gTENQTExfQ0xLX0ZSRVFfNDUwOwo+ICsJCWJyZWFrOwo+ICsJ Y2FzZSAzMzc1MDA6Cj4gKwljYXNlIDU0MDAwMDoKPiArCQl2YWwgfD0gTENQTExfQ0xLX0ZSRVFf QUxUX0hTVzsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJV0FSTigxLCAiaW52YWxpZCBj ZGNsayBmcmVxdWVuY3lcbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlJOTE1X1dSSVRF KExDUExMX0NUTCwgdmFsKTsKPiArCj4gKwlpZiAoSVNfSFNXX1VMWChkZXYpKSB7Cj4gKwkJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCQlzYW5keWJyaWRnZV9wY29kZV93 cml0ZShkZXZfcHJpdiwgSFNXX1BDT0RFX0RFX1dSSVRFX0ZSRVFfUkVRLAo+ICsJCQkJCWNkY2xr ID09IDMzNzUwMCk7Cj4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ ICsJfQo+ICsKPiArCWludGVsX3VwZGF0ZV9jZGNsayhkZXYpOwo+ICsKPiArCVdBUk4oY2RjbGsg IT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEsCj4gKwkgICAgICJjZGNsayByZXF1ZXN0ZWQgJWQga0h6 IGJ1dCBnb3QgJWQga0h6XG4iLAo+ICsJICAgICBjZGNsaywgZGV2X3ByaXYtPmNkY2xrX2ZyZXEp Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGhhc3dlbGxfbW9kZXNldF9nbG9iYWxfcGlwZXMoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+ICsJc3RydWN0IGRybV9jcnRj ICpjcnRjOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICsJaW50IG1h eF9waXhjbGsgPSBpbGtfbWF4X3BpeGVsX3JhdGUoZGV2X3ByaXYpOwo+ICsJaW50IGNkY2xrLCBp Owo+ICsKPiArCWNkY2xrID0gaGFzd2VsbF9jYWxjX2NkY2xrKGRldl9wcml2LCBtYXhfcGl4Y2xr KTsKPiArCj4gKwlpZiAoY2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEpCj4gKwkJcmV0dXJu IDA7Cj4gKwo+ICsJLyogYWRkIGFsbCBhY3RpdmUgcGlwZXMgdG8gdGhlIHN0YXRlICovCj4gKwlm b3JfZWFjaF9jcnRjKHN0YXRlLT5kZXYsIGNydGMpIHsKPiArCQlpZiAoIWNydGMtPnN0YXRlLT5l bmFibGUpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gKwkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkK PiArCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4gKwl9Cj4gKwo+ICsJLyogZGlzYWJs ZS9lbmFibGUgYWxsIGN1cnJlbnRseSBhY3RpdmUgcGlwZXMgd2hpbGUgd2UgY2hhbmdlIGNkY2xr ICovCj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBp KQo+ICsJCWlmIChjcnRjX3N0YXRlLT5lbmFibGUpCj4gKwkJCWNydGNfc3RhdGUtPm1vZGVfY2hh bmdlZCA9IHRydWU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGhh c3dlbGxfbW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJ aW50IG1heF9waXhlbF9yYXRlID0gaWxrX21heF9waXhlbF9yYXRlKGRldl9wcml2KTsKPiArCWlu dCByZXFfY2RjbGsgPSBoYXN3ZWxsX2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1heF9waXhlbF9yYXRl KTsKPiArCj4gKwlpZiAocmVxX2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxKSB7Cj4gKwkJ aGFzd2VsbF9zZXRfY2RjbGsoZGV2LCByZXFfY2RjbGspOwo+ICsJfQo+ICt9Cj4gKwo+ICBzdGF0 aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAo+ICAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsK PiBAQCAtMTI1ODIsMTAgKzEyNzI0LDE2IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9j aGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJICogbW9kZSBzZXQgb24g dGhpcyBjcnRjLiAgRm9yIG90aGVyIGNydGNzIHdlIG5lZWQgdG8gdXNlIHRoZQo+ICAJICogYWRq dXN0ZWRfbW9kZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVjdGx5Lgo+ICAJICovCj4gLQlpZiAoSVNf VkFMTEVZVklFVyhkZXYpIHx8IElTX0JST1hUT04oZGV2KSkgewo+IC0JCXJldCA9IHZhbGxleXZp ZXdfbW9kZXNldF9nbG9iYWxfcGlwZXMoc3RhdGUpOwo+IC0JCWlmIChyZXQpCj4gLQkJCXJldHVy biByZXQ7Cj4gKwlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0JST1hUT04oZGV2KSB8fCBJ U19IQVNXRUxMKGRldikpIHsKPiArCQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0JST1hU T04oZGV2KSkgewo+ICsJCQlyZXQgPSB2YWxsZXl2aWV3X21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0 YXRlKTsKPiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVybiByZXQ7Cj4gKwkJfSBlbHNlIHsKPiAr CQkJcmV0ID0gaGFzd2VsbF9tb2Rlc2V0X2dsb2JhbF9waXBlcyhzdGF0ZSk7Cj4gKwkJCWlmIChy ZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPiAgCX0KPiAgCj4gIAlyZXQgPSBfX2ludGVs X3NldF9tb2RlX3NldHVwX3BsbHMoc3RhdGUpOwo+IEBAIC0xNDQ2OCw2ICsxNDYxNiw5IEBAIHN0 YXRpYyB2b2lkIGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJ CWRldl9wcml2LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluID0gaXZiX21hbnVhbF9mZGlfbGlua190 cmFpbjsKPiAgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYp KSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPSBoc3dfZmRpX2xpbmtf dHJhaW47Cj4gKwkJaWYgKElTX0hBU1dFTEwoZGV2KSkKPiArCQkJZGV2X3ByaXYtPmRpc3BsYXku bW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzID0KPiArCQkJCWhhc3dlbGxfbW9kZXNldF9nbG9iYWxf cmVzb3VyY2VzOwo+ICAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKPiAgCQlkZXZf cHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgPQo+ICAJCQl2YWxsZXl2aWV3 X21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlczsKPiAtLSAKPiAxLjkuMQo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==