From mboxrd@z Thu Jan 1 00:00:00 1970 From: Damien Lespiau Subject: Re: [PATCH 08/19] drm/i915: Convert the ddi cdclk code to get_display_clock_speed Date: Tue, 31 Mar 2015 14:15:56 +0100 Message-ID: <20150331131556.GE8912@strange.ger.corp.intel.com> References: <20150331110535.GB3154@sorvi> <1427800321-4966-1-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id DE1116E3C3 for ; Tue, 31 Mar 2015 06:15:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1427800321-4966-1-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 T24gVHVlLCBNYXIgMzEsIDIwMTUgYXQgMDI6MTI6MDFQTSArMDMwMCwgTWlrYSBLYWhvbGEgd3Jv dGU6Cj4gVW5pZnkgdGhlIEhTVy9CRFcvU0tMIGNkY2xrIGV4dHJhY3Rpb24gY29kZSB0byBjb25m b3JtIHRvIHRoZSBzYW1lCj4gLmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKCkgbW9sZCB0aGF0IGFs bCB0aGUgb3RoZXIgcGxhdGZvcm1zCj4gdXNlLgo+IAo+IHYyOiBVcGRhdGUgZHVlIHRvIFNLTCBj b2RlIGdldHRpbmcgYWRkZWQKCkhhdmluZyBkb25lIHRoZSBzYW1lIHJlYmFzZSBsYXN0IHdlZWss IEknbSBmYWlybHkgc3VyZSB0aGVyZSB3ZXJlIHNvbWUKd29yayBuZWVkZWQgKGludGVsX2F1ZGlv LmMgZGlkbid0IGV4aXN0IGluIHRoZSB2MiBvZiB0aGlzIHBhdGNoKS4KVXN1YWxseSB0aGF0J3Mg ZW5vdWdoIGEgdjMgY29tbWVudDoKCnYzOiBSZWJhc2Ugb24gdG9wIG9mIC1uaWdodGx5IChpbnRy b2R1Y3Rpb24gb2YgaW50ZWxfYXVkaW8uYykgKE1pa2EgS2Fob2xhKQoKb3Igc29tZXRoaW5nLgoK UmV2aWV3ZWQtYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Cgo+ IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWlrYSBLYWhvbGEgPG1pa2Eua2Fob2xhQGludGVsLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyAgIHwgICAzICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8IDEwMSArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgfCAgOTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jICAgICAgfCAgIDIgKy0KPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9u cygrKSwgMTA1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ IGluZGV4IDIzOTZjYzcuLjBkNWIxY2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXVkaW8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlv LmMKPiBAQCAtNDg1LDcgKzQ4NSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRf Z2V0X2NkY2xrX2ZyZXEoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJCXJldHVybiAtRU5PREVWOwo+ ICAKPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fQVVE SU8pOwo+IC0JcmV0ID0gaW50ZWxfZGRpX2dldF9jZGNsa19mcmVxKGRldl9wcml2KTsKPiArCXJl dCA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKGRldl9wcml2LT5k ZXYpOwo+ICsKPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01B SU5fQVVESU8pOwo+ICAKPiAgCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK PiBpbmRleCA0N2I5MzA3Li44YzY5MmQ4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK PiBAQCAtMTY4OSwxMDUgKzE2ODksNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgCX0KPiAgfQo+ICAKPiAtc3Rh dGljIGludCBza2xfZ2V0X2NkY2xrX2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+IC17Cj4gLQl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JFQUQoTENQTEwxX0NUTCk7Cj4g LQl1aW50MzJfdCBjZGN0bCA9IEk5MTVfUkVBRChDRENMS19DVEwpOwo+IC0JdWludDMyX3QgbGlu a3JhdGU7Cj4gLQo+IC0JaWYgKCEobGNwbGwxICYgTENQTExfUExMX0VOQUJMRSkpIHsKPiAtCQlX QVJOKDEsICJMQ1BMTDEgbm90IGVuYWJsZWRcbiIpOwo+IC0JCXJldHVybiAyNDAwMDsgLyogMjRN SHogaXMgdGhlIGNkIGZyZXEgd2l0aCBOU1NDIHJlZiAqLwo+IC0JfQo+IC0KPiAtCWlmICgoY2Rj dGwgJiBDRENMS19GUkVRX1NFTF9NQVNLKSA9PSBDRENMS19GUkVRXzU0MCkKPiAtCQlyZXR1cm4g NTQwMDAwOwo+IC0KPiAtCWxpbmtyYXRlID0gKEk5MTVfUkVBRChEUExMX0NUUkwxKSAmCj4gLQkJ ICAgIERQTExfQ1JUTDFfTElOS19SQVRFX01BU0soU0tMX0RQTEwwKSkgPj4gMTsKPiAtCj4gLQlp ZiAobGlua3JhdGUgPT0gRFBMTF9DUlRMMV9MSU5LX1JBVEVfMjE2MCB8fAo+IC0JICAgIGxpbmty YXRlID09IERQTExfQ1JUTDFfTElOS19SQVRFXzEwODApIHsKPiAtCQkvKiB2Y28gODY0MCAqLwo+ IC0JCXN3aXRjaCAoY2RjdGwgJiBDRENMS19GUkVRX1NFTF9NQVNLKSB7Cj4gLQkJY2FzZSBDRENM S19GUkVRXzQ1MF80MzI6Cj4gLQkJCXJldHVybiA0MzIwMDA7Cj4gLQkJY2FzZSBDRENMS19GUkVR XzMzN18zMDg6Cj4gLQkJCXJldHVybiAzMDg1NzA7Cj4gLQkJY2FzZSBDRENMS19GUkVRXzY3NV82 MTc6Cj4gLQkJCXJldHVybiA2MTcxNDA7Cj4gLQkJZGVmYXVsdDoKPiAtCQkJV0FSTigxLCAiVW5r bm93biBjZCBmcmVxIHNlbGVjdGlvblxuIik7Cj4gLQkJfQo+IC0JfSBlbHNlIHsKPiAtCQkvKiB2 Y28gODEwMCAqLwo+IC0JCXN3aXRjaCAoY2RjdGwgJiBDRENMS19GUkVRX1NFTF9NQVNLKSB7Cj4g LQkJY2FzZSBDRENMS19GUkVRXzQ1MF80MzI6Cj4gLQkJCXJldHVybiA0NTAwMDA7Cj4gLQkJY2Fz ZSBDRENMS19GUkVRXzMzN18zMDg6Cj4gLQkJCXJldHVybiAzMzc1MDA7Cj4gLQkJY2FzZSBDRENM S19GUkVRXzY3NV82MTc6Cj4gLQkJCXJldHVybiA2NzUwMDA7Cj4gLQkJZGVmYXVsdDoKPiAtCQkJ V0FSTigxLCAiVW5rbm93biBjZCBmcmVxIHNlbGVjdGlvblxuIik7Cj4gLQkJfQo+IC0JfQo+IC0K PiAtCS8qIGVycm9yIGNhc2UsIGRvIGFzIGlmIERQTEwwIGlzbid0IGVuYWJsZWQgKi8KPiAtCXJl dHVybiAyNDAwMDsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBiZHdfZ2V0X2NkY2xrX2ZyZXEoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IC17Cj4gLQl1aW50MzJfdCBsY3BsbCA9 IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+IC0JdWludDMyX3QgZnJlcSA9IGxjcGxsICYgTENQTExf Q0xLX0ZSRVFfTUFTSzsKPiAtCj4gLQlpZiAobGNwbGwgJiBMQ1BMTF9DRF9TT1VSQ0VfRkNMSykK PiAtCQlyZXR1cm4gODAwMDAwOwo+IC0JZWxzZSBpZiAoSTkxNV9SRUFEKEZVU0VfU1RSQVApICYg SFNXX0NEQ0xLX0xJTUlUKQo+IC0JCXJldHVybiA0NTAwMDA7Cj4gLQllbHNlIGlmIChmcmVxID09 IExDUExMX0NMS19GUkVRXzQ1MCkKPiAtCQlyZXR1cm4gNDUwMDAwOwo+IC0JZWxzZSBpZiAoZnJl cSA9PSBMQ1BMTF9DTEtfRlJFUV81NE9fQkRXKQo+IC0JCXJldHVybiA1NDAwMDA7Cj4gLQllbHNl IGlmIChmcmVxID09IExDUExMX0NMS19GUkVRXzMzN181X0JEVykKPiAtCQlyZXR1cm4gMzM3NTAw Owo+IC0JZWxzZQo+IC0JCXJldHVybiA2NzUwMDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgaHN3 X2dldF9jZGNsa19mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAtewo+ IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gLQl1aW50MzJfdCBs Y3BsbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+IC0JdWludDMyX3QgZnJlcSA9IGxjcGxsICYg TENQTExfQ0xLX0ZSRVFfTUFTSzsKPiAtCj4gLQlpZiAobGNwbGwgJiBMQ1BMTF9DRF9TT1VSQ0Vf RkNMSykKPiAtCQlyZXR1cm4gODAwMDAwOwo+IC0JZWxzZSBpZiAoSTkxNV9SRUFEKEZVU0VfU1RS QVApICYgSFNXX0NEQ0xLX0xJTUlUKQo+IC0JCXJldHVybiA0NTAwMDA7Cj4gLQllbHNlIGlmIChm cmVxID09IExDUExMX0NMS19GUkVRXzQ1MCkKPiAtCQlyZXR1cm4gNDUwMDAwOwo+IC0JZWxzZSBp ZiAoSVNfSFNXX1VMVChkZXYpKQo+IC0JCXJldHVybiAzMzc1MDA7Cj4gLQllbHNlCj4gLQkJcmV0 dXJuIDU0MDAwMDsKPiAtfQo+IC0KPiAtaW50IGludGVsX2RkaV9nZXRfY2RjbGtfZnJlcShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+IC0KPiAtCWlmIChJU19TS1lMQUtFKGRldikpCj4gLQkJ cmV0dXJuIHNrbF9nZXRfY2RjbGtfZnJlcShkZXZfcHJpdik7Cj4gLQo+IC0JaWYgKElTX0JST0FE V0VMTChkZXYpKQo+IC0JCXJldHVybiBiZHdfZ2V0X2NkY2xrX2ZyZXEoZGV2X3ByaXYpOwo+IC0K PiAtCS8qIEhhc3dlbGwgKi8KPiAtCXJldHVybiBoc3dfZ2V0X2NkY2xrX2ZyZXEoZGV2X3ByaXYp Owo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBoc3dfZGRpX3BsbF9lbmFibGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAgICAgc3RydWN0IGludGVsX3NoYXJlZF9k cGxsICpwbGwpCj4gIHsKPiBAQCAtMTk3NCw3ICsxODc1LDcgQEAgdm9pZCBpbnRlbF9kZGlfcGxs X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQloc3dfc2hhcmVkX2RwbGxzX2luaXQo ZGV2X3ByaXYpOwo+ICAKPiAgCURSTV9ERUJVR19LTVMoIkNEQ0xLIHJ1bm5pbmcgYXQgJWRLSHpc biIsCj4gLQkJICAgICAgaW50ZWxfZGRpX2dldF9jZGNsa19mcmVxKGRldl9wcml2KSk7Cj4gKwkJ ICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoZGV2KSk7Cj4g IAo+ICAJaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ICAJCWlmICghKEk5MTVfUkVBRChMQ1BMTDFf Q1RMKSAmIExDUExMX1BMTF9FTkFCTEUpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiBpbmRleCA0YTRmZGIwLi42ZTMzMjU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IEBAIC01ODY0LDYgKzU4NjQsOTMgQEAgc3RhdGljIGludCBpbnRlbF9jcnRj X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJcmV0dXJuIDA7Cj4g IH0KPiAgCj4gK3N0YXRpYyBpbnQgc2t5bGFrZV9nZXRfZGlzcGxheV9jbG9ja19zcGVlZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JFQUQoTENQ TEwxX0NUTCk7Cj4gKwl1aW50MzJfdCBjZGN0bCA9IEk5MTVfUkVBRChDRENMS19DVEwpOwo+ICsJ dWludDMyX3QgbGlua3JhdGU7Cj4gKwo+ICsJaWYgKCEobGNwbGwxICYgTENQTExfUExMX0VOQUJM RSkpIHsKPiArCQlXQVJOKDEsICJMQ1BMTDEgbm90IGVuYWJsZWRcbiIpOwo+ICsJCXJldHVybiAy NDAwMDsgLyogMjRNSHogaXMgdGhlIGNkIGZyZXEgd2l0aCBOU1NDIHJlZiAqLwo+ICsJfQo+ICsK PiArCWlmICgoY2RjdGwgJiBDRENMS19GUkVRX1NFTF9NQVNLKSA9PSBDRENMS19GUkVRXzU0MCkK PiArCQlyZXR1cm4gNTQwMDAwOwo+ICsKPiArCWxpbmtyYXRlID0gKEk5MTVfUkVBRChEUExMX0NU UkwxKSAmCj4gKwkJICAgIERQTExfQ1JUTDFfTElOS19SQVRFX01BU0soU0tMX0RQTEwwKSkgPj4g MTsKPiArCj4gKwlpZiAobGlua3JhdGUgPT0gRFBMTF9DUlRMMV9MSU5LX1JBVEVfMjE2MCB8fAo+ ICsJICAgIGxpbmtyYXRlID09IERQTExfQ1JUTDFfTElOS19SQVRFXzEwODApIHsKPiArCQkvKiB2 Y28gODY0MCAqLwo+ICsJCXN3aXRjaCAoY2RjdGwgJiBDRENMS19GUkVRX1NFTF9NQVNLKSB7Cj4g KwkJY2FzZSBDRENMS19GUkVRXzQ1MF80MzI6Cj4gKwkJCXJldHVybiA0MzIwMDA7Cj4gKwkJY2Fz ZSBDRENMS19GUkVRXzMzN18zMDg6Cj4gKwkJCXJldHVybiAzMDg1NzA7Cj4gKwkJY2FzZSBDRENM S19GUkVRXzY3NV82MTc6Cj4gKwkJCXJldHVybiA2MTcxNDA7Cj4gKwkJZGVmYXVsdDoKPiArCQkJ V0FSTigxLCAiVW5rbm93biBjZCBmcmVxIHNlbGVjdGlvblxuIik7Cj4gKwkJfQo+ICsJfSBlbHNl IHsKPiArCQkvKiB2Y28gODEwMCAqLwo+ICsJCXN3aXRjaCAoY2RjdGwgJiBDRENMS19GUkVRX1NF TF9NQVNLKSB7Cj4gKwkJY2FzZSBDRENMS19GUkVRXzQ1MF80MzI6Cj4gKwkJCXJldHVybiA0NTAw MDA7Cj4gKwkJY2FzZSBDRENMS19GUkVRXzMzN18zMDg6Cj4gKwkJCXJldHVybiAzMzc1MDA7Cj4g KwkJY2FzZSBDRENMS19GUkVRXzY3NV82MTc6Cj4gKwkJCXJldHVybiA2NzUwMDA7Cj4gKwkJZGVm YXVsdDoKPiArCQkJV0FSTigxLCAiVW5rbm93biBjZCBmcmVxIHNlbGVjdGlvblxuIik7Cj4gKwkJ fQo+ICsJfQo+ICsKPiArCS8qIGVycm9yIGNhc2UsIGRvIGFzIGlmIERQTEwwIGlzbid0IGVuYWJs ZWQgKi8KPiArCXJldHVybiAyNDAwMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBicm9hZHdlbGxf Z2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAr CXVpbnQzMl90IGxjcGxsID0gSTkxNV9SRUFEKExDUExMX0NUTCk7Cj4gKwl1aW50MzJfdCBmcmVx ID0gbGNwbGwgJiBMQ1BMTF9DTEtfRlJFUV9NQVNLOwo+ICsKPiArCWlmIChsY3BsbCAmIExDUExM X0NEX1NPVVJDRV9GQ0xLKQo+ICsJCXJldHVybiA4MDAwMDA7Cj4gKwllbHNlIGlmIChJOTE1X1JF QUQoRlVTRV9TVFJBUCkgJiBIU1dfQ0RDTEtfTElNSVQpCj4gKwkJcmV0dXJuIDQ1MDAwMDsKPiAr CWVsc2UgaWYgKGZyZXEgPT0gTENQTExfQ0xLX0ZSRVFfNDUwKQo+ICsJCXJldHVybiA0NTAwMDA7 Cj4gKwllbHNlIGlmIChmcmVxID09IExDUExMX0NMS19GUkVRXzU0T19CRFcpCj4gKwkJcmV0dXJu IDU0MDAwMDsKPiArCWVsc2UgaWYgKGZyZXEgPT0gTENQTExfQ0xLX0ZSRVFfMzM3XzVfQkRXKQo+ ICsJCXJldHVybiAzMzc1MDA7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIDY3NTAwMDsKPiArfQo+ICsK PiArc3RhdGljIGludCBoYXN3ZWxsX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwl1aW50MzJfdCBsY3BsbCA9IEk5MTVfUkVBRChMQ1BMTF9D VEwpOwo+ICsJdWludDMyX3QgZnJlcSA9IGxjcGxsICYgTENQTExfQ0xLX0ZSRVFfTUFTSzsKPiAr Cj4gKwlpZiAobGNwbGwgJiBMQ1BMTF9DRF9TT1VSQ0VfRkNMSykKPiArCQlyZXR1cm4gODAwMDAw Owo+ICsJZWxzZSBpZiAoSTkxNV9SRUFEKEZVU0VfU1RSQVApICYgSFNXX0NEQ0xLX0xJTUlUKQo+ ICsJCXJldHVybiA0NTAwMDA7Cj4gKwllbHNlIGlmIChmcmVxID09IExDUExMX0NMS19GUkVRXzQ1 MCkKPiArCQlyZXR1cm4gNDUwMDAwOwo+ICsJZWxzZSBpZiAoSVNfSFNXX1VMVChkZXYpKQo+ICsJ CXJldHVybiAzMzc1MDA7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIDU0MDAwMDsKPiArfQo+ICsKPiAg c3RhdGljIGludCB2YWxsZXl2aWV3X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTEzNjg3LDcgKzEzNzc0LDE2IEBAIHN0YXRpYyB2b2lk IGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJfQo+ICAKPiAg CS8qIFJldHVybnMgdGhlIGNvcmUgZGlzcGxheSBjbG9jayBzcGVlZCAqLwo+IC0JaWYgKElTX1ZB TExFWVZJRVcoZGV2KSkKPiArCWlmIChJU19TS1lMQUtFKGRldikpCj4gKwkJZGV2X3ByaXYtPmRp c3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ICsJCQlza3lsYWtlX2dldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkOwo+ICsJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldikpCj4gKwkJZGV2X3By aXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ICsJCQlicm9hZHdlbGxfZ2V0 X2Rpc3BsYXlfY2xvY2tfc3BlZWQ7Cj4gKwllbHNlIGlmIChJU19IQVNXRUxMKGRldikpCj4gKwkJ ZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ICsJCQloYXN3ZWxs X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ICsJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYp KQo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiAgCQkJ dmFsbGV5dmlld19nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiAgCWVsc2UgaWYgKElTX0dFTjUo ZGV2KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCBlMzhkYmQ1Li4wNDdhNTJlIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTcxNyw3ICs3MTcsNyBAQCBzdGF0aWMg dWludDMyX3QgaHN3X2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLCBpbnQgaW5kZXgpCj4gIAlpZiAoaW50ZWxfZGlnX3BvcnQtPnBvcnQgPT0gUE9SVF9BKSB7 Cj4gIAkJaWYgKGluZGV4KQo+ICAJCQlyZXR1cm4gMDsKPiAtCQlyZXR1cm4gRElWX1JPVU5EX0NM T1NFU1QoaW50ZWxfZGRpX2dldF9jZGNsa19mcmVxKGRldl9wcml2KSwgMjAwMCk7Cj4gKwkJcmV0 dXJuIERJVl9ST1VORF9DTE9TRVNUKGRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2Nr X3NwZWVkKGRldiksIDIwMDApOwo+ICAJfSBlbHNlIGlmIChkZXZfcHJpdi0+cGNoX2lkID09IElO VEVMX1BDSF9MUFRfREVWSUNFX0lEX1RZUEUpIHsKPiAgCQkvKiBXb3JrYXJvdW5kIGZvciBub24t VUxUIEhTVyAqLwo+ICAJCXN3aXRjaCAoaW5kZXgpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IGluZGV4IGZjYTdiOWYuLjRmMmVkOTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IEBAIC04NTYsNyArODU2LDYgQEAgdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGRy bV9jcnRjICpjcnRjKTsKPiAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBlbnVtIHBvcnQgcG9ydCk7Cj4gIGVudW0gcG9ydCBpbnRlbF9kZGlfZ2V0X2VuY29kZXJf cG9ydChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rlcik7Cj4gIGJvb2wgaW50ZWxf ZGRpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgZW51bSBwaXBl ICpwaXBlKTsKPiAtaW50IGludGVsX2RkaV9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGludGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPiAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJfZnVuYyhz dHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICB2b2lkIGludGVsX2RkaV9kaXNhYmxlX3RyYW5zY29k ZXJfZnVuYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCj4gaW5kZXggZmE0Y2NiMy4uZTEzOTJlNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+IEBAIC0xNzkyLDcgKzE3OTIsNyBAQCBoc3dfY29tcHV0ZV9saW5ldGltZV93bShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlsaW5ldGlt ZSA9IERJVl9ST1VORF9DTE9TRVNUKG1vZGUtPmNydGNfaHRvdGFsICogMTAwMCAqIDgsCj4gIAkJ CQkgICAgIG1vZGUtPmNydGNfY2xvY2spOwo+ICAJaXBzX2xpbmV0aW1lID0gRElWX1JPVU5EX0NM T1NFU1QobW9kZS0+Y3J0Y19odG90YWwgKiAxMDAwICogOCwKPiAtCQkJCQkgaW50ZWxfZGRpX2dl dF9jZGNsa19mcmVxKGRldl9wcml2KSk7Cj4gKwkJCQkJIGRldl9wcml2LT5kaXNwbGF5LmdldF9k aXNwbGF5X2Nsb2NrX3NwZWVkKGRldl9wcml2LT5kZXYpKTsKPiAgCj4gIAlyZXR1cm4gUElQRV9X TV9MSU5FVElNRV9JUFNfTElORVRJTUUoaXBzX2xpbmV0aW1lKSB8Cj4gIAkgICAgICAgUElQRV9X TV9MSU5FVElNRV9USU1FKGxpbmV0aW1lKTsKPiAtLSAKPiAxLjkuMQo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==