From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 2/4] drm/i915: Pass dev_priv to vlv_gpu_freq() and vlv_freq_opcode() Date: Tue, 5 Nov 2013 13:01:47 -0800 Message-ID: <20131105130147.77291b50@jbarnes-desktop> References: <1383684151-595-1-git-send-email-ville.syrjala@linux.intel.com> <1383684151-595-3-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from oproxy13-pub.mail.unifiedlayer.com (oproxy13-pub.mail.unifiedlayer.com [69.89.16.30]) by gabe.freedesktop.org (Postfix) with SMTP id 5DFE2EFF99 for ; Tue, 5 Nov 2013 13:01:04 -0800 (PST) In-Reply-To: <1383684151-595-3-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAgNSBOb3YgMjAxMyAyMjo0MjoyOSArMDIwMAp2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKCj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiAKPiBXZSdsbCBiZSBsb29raW5nIGF0IG1vcmUgdGhhbiBqdXN0IG1l bV9mcmVxIGZyb20gZGV2X3ByaXYsIHNvCj4ganVzdCBwYXNzIHRoZSB3aG9sZSB0aGluZy4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8IDE3 ICsrKysrKystLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg IHwgIDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMgICB8IDEzICsr KysrKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgfCAzOCAr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwg MzEgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKPiBpbmRleCA3MDA4YWFjLi45NzcwYzJmIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtOTc0LDE1ICs5NzQsMTQgQEAgc3RhdGljIGludCBpOTE1 X2N1cl9kZWxheWluZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gIAo+ICAJ CXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBQVU5JVF9GVVNFX0JVUzEpOwo+ICAJCXNl cV9wcmludGYobSwgIm1heCBHUFUgZnJlcTogJWQgTUh6XG4iLAo+IC0JCQkgICB2bHZfZ3B1X2Zy ZXEoZGV2X3ByaXYtPm1lbV9mcmVxLCB2YWwpKTsKPiArCQkJICAgdmx2X2dwdV9mcmVxKGRldl9w cml2LCB2YWwpKTsKPiAgCj4gIAkJdmFsID0gdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklU X1JFR19HUFVfTEZNKTsKPiAgCQlzZXFfcHJpbnRmKG0sICJtaW4gR1BVIGZyZXE6ICVkIE1Ielxu IiwKPiAtCQkJICAgdmx2X2dwdV9mcmVxKGRldl9wcml2LT5tZW1fZnJlcSwgdmFsKSk7Cj4gKwkJ CSAgIHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgdmFsKSk7Cj4gIAo+ICAJCXNlcV9wcmludGYobSwg ImN1cnJlbnQgR1BVIGZyZXE6ICVkIE1IelxuIiwKPiAtCQkJICAgdmx2X2dwdV9mcmVxKGRldl9w cml2LT5tZW1fZnJlcSwKPiAtCQkJCQkoZnJlcV9zdHMgPj4gOCkgJiAweGZmKSk7Cj4gKwkJCSAg IHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgKGZyZXFfc3RzID4+IDgpICYgMHhmZikpOwo+ICAJCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiAgCX0gZWxzZSB7Cj4gIAkJc2Vx X3B1dHMobSwgIm5vIFAtc3RhdGUgaW5mbyBhdmFpbGFibGVcbiIpOwo+IEBAIC0yNzI1LDggKzI3 MjQsNyBAQCBpOTE1X21heF9mcmVxX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkKPiAgCQlyZXR1 cm4gcmV0Owo+ICAKPiAgCWlmIChJU19WQUxMRVlWSUVXKGRldikpCj4gLQkJKnZhbCA9IHZsdl9n cHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEsCj4gLQkJCQkgICAgZGV2X3ByaXYtPnJwcy5tYXhf ZGVsYXkpOwo+ICsJCSp2YWwgPSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYsIGRldl9wcml2LT5ycHMu bWF4X2RlbGF5KTsKPiAgCWVsc2UKPiAgCQkqdmFsID0gZGV2X3ByaXYtPnJwcy5tYXhfZGVsYXkg KiBHVF9GUkVRVUVOQ1lfTVVMVElQTElFUjsKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJw cy5od19sb2NrKTsKPiBAQCAtMjc1Niw3ICsyNzU0LDcgQEAgaTkxNV9tYXhfZnJlcV9zZXQodm9p ZCAqZGF0YSwgdTY0IHZhbCkKPiAgCSAqIFR1cmJvIHdpbGwgc3RpbGwgYmUgZW5hYmxlZCwgYnV0 IHdvbid0IGdvIGFib3ZlIHRoZSBzZXQgdmFsdWUuCj4gIAkgKi8KPiAgCWlmIChJU19WQUxMRVlW SUVXKGRldikpIHsKPiAtCQl2YWwgPSB2bHZfZnJlcV9vcGNvZGUoZGV2X3ByaXYtPm1lbV9mcmVx LCB2YWwpOwo+ICsJCXZhbCA9IHZsdl9mcmVxX29wY29kZShkZXZfcHJpdiwgdmFsKTsKPiAgCQlk ZXZfcHJpdi0+cnBzLm1heF9kZWxheSA9IHZhbDsKPiAgCQlnZW42X3NldF9ycHMoZGV2LCB2YWwp Owo+ICAJfSBlbHNlIHsKPiBAQCAtMjc5MSw4ICsyNzg5LDcgQEAgaTkxNV9taW5fZnJlcV9nZXQo dm9pZCAqZGF0YSwgdTY0ICp2YWwpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAlpZiAoSVNfVkFM TEVZVklFVyhkZXYpKQo+IC0JCSp2YWwgPSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVx LAo+IC0JCQkJICAgIGRldl9wcml2LT5ycHMubWluX2RlbGF5KTsKPiArCQkqdmFsID0gdmx2X2dw dV9mcmVxKGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLm1pbl9kZWxheSk7Cj4gIAllbHNlCj4gIAkJ KnZhbCA9IGRldl9wcml2LT5ycHMubWluX2RlbGF5ICogR1RfRlJFUVVFTkNZX01VTFRJUExJRVI7 Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gQEAgLTI4MjIsNyAr MjgxOSw3IEBAIGk5MTVfbWluX2ZyZXFfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gIAkgKiBU dXJibyB3aWxsIHN0aWxsIGJlIGVuYWJsZWQsIGJ1dCB3b24ndCBnbyBiZWxvdyB0aGUgc2V0IHZh bHVlLgo+ICAJICovCj4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4gLQkJdmFsID0gdmx2 X2ZyZXFfb3Bjb2RlKGRldl9wcml2LT5tZW1fZnJlcSwgdmFsKTsKPiArCQl2YWwgPSB2bHZfZnJl cV9vcGNvZGUoZGV2X3ByaXYsIHZhbCk7Cj4gIAkJZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkgPSB2 YWw7Cj4gIAkJdmFsbGV5dmlld19zZXRfcnBzKGRldiwgdmFsKTsKPiAgCX0gZWxzZSB7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMmFhNzA1My4uNGJhZTg3MSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yNDEyLDggKzI0MTIsOCBAQCB1MzIgaW50ZWxfc2JpX3Jl YWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MTYgcmVnLAo+ICB2b2lkIGlu dGVsX3NiaV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUxNiByZWcs IHUzMiB2YWx1ZSwKPiAgCQkgICAgIGVudW0gaW50ZWxfc2JpX2Rlc3RpbmF0aW9uIGRlc3RpbmF0 aW9uKTsKPiAgCj4gLWludCB2bHZfZ3B1X2ZyZXEoaW50IGRkcl9mcmVxLCBpbnQgdmFsKTsKPiAt aW50IHZsdl9mcmVxX29wY29kZShpbnQgZGRyX2ZyZXEsIGludCB2YWwpOwo+ICtpbnQgdmx2X2dw dV9mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCk7Cj4gK2lu dCB2bHZfZnJlcV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQg dmFsKTsKPiAgCj4gICNkZWZpbmUgSTkxNV9SRUFEOChyZWcpCQlkZXZfcHJpdi0+dW5jb3JlLmZ1 bmNzLm1taW9fcmVhZGIoZGV2X3ByaXYsIChyZWcpLCB0cnVlKQo+ICAjZGVmaW5lIEk5MTVfV1JJ VEU4KHJlZywgdmFsKQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fd3JpdGViKGRldl9wcml2 LCAocmVnKSwgKHZhbCksIHRydWUpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+IGluZGV4 IGNlZjM4ZmQuLjVlODFjZjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9zeXNmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCj4gQEAg LTI1OSw3ICsyNTksNyBAQCBzdGF0aWMgc3NpemVfdCBndF9jdXJfZnJlcV9taHpfc2hvdyhzdHJ1 Y3QgZGV2aWNlICprZGV2LAo+ICAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYtPmRldikpIHsK PiAgCQl1MzIgZnJlcTsKPiAgCQlmcmVxID0gdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklU X1JFR19HUFVfRlJFUV9TVFMpOwo+IC0JCXJldCA9IHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVt X2ZyZXEsIChmcmVxID4+IDgpICYgMHhmZik7Cj4gKwkJcmV0ID0gdmx2X2dwdV9mcmVxKGRldl9w cml2LCAoZnJlcSA+PiA4KSAmIDB4ZmYpOwo+ICAJfSBlbHNlIHsKPiAgCQlyZXQgPSBkZXZfcHJp di0+cnBzLmN1cl9kZWxheSAqIEdUX0ZSRVFVRU5DWV9NVUxUSVBMSUVSOwo+ICAJfQo+IEBAIC0y NzYsOCArMjc2LDcgQEAgc3RhdGljIHNzaXplX3Qgdmx2X3JwZV9mcmVxX21oel9zaG93KHN0cnVj dCBkZXZpY2UgKmtkZXYsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+ICAKPiAgCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwg IiVkXG4iLAo+IC0JCQl2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLAo+IC0JCQkJICAg ICBkZXZfcHJpdi0+cnBzLnJwZV9kZWxheSkpOwo+ICsJCQl2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYs IGRldl9wcml2LT5ycHMucnBlX2RlbGF5KSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBzc2l6ZV90IGd0 X21heF9mcmVxX21oel9zaG93KHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLCBjaGFyICpidWYpCj4gQEAgLTI5MSw3ICsyOTAsNyBAQCBzdGF0aWMgc3Np emVfdCBndF9tYXhfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZQo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7 Cj4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdi0+ZGV2KSkKPiAtCQlyZXQgPSB2bHZfZ3B1 X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLCBkZXZfcHJpdi0+cnBzLm1heF9kZWxheSk7Cj4gKwkJ cmV0ID0gdmx2X2dwdV9mcmVxKGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLm1heF9kZWxheSk7Cj4g IAllbHNlCj4gIAkJcmV0ID0gZGV2X3ByaXYtPnJwcy5tYXhfZGVsYXkgKiBHVF9GUkVRVUVOQ1lf TVVMVElQTElFUjsKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiBA QCAtMzE4LDcgKzMxNyw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X21heF9mcmVxX21oel9zdG9yZShz dHJ1Y3QgZGV2aWNlICprZGV2LAo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2Nr KTsKPiAgCj4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdi0+ZGV2KSkgewo+IC0JCXZhbCA9 IHZsdl9mcmVxX29wY29kZShkZXZfcHJpdi0+bWVtX2ZyZXEsIHZhbCk7Cj4gKwkJdmFsID0gdmx2 X2ZyZXFfb3Bjb2RlKGRldl9wcml2LCB2YWwpOwo+ICAKPiAgCQlod19tYXggPSB2YWxsZXl2aWV3 X3Jwc19tYXhfZnJlcShkZXZfcHJpdik7Cj4gIAkJaHdfbWluID0gdmFsbGV5dmlld19ycHNfbWlu X2ZyZXEoZGV2X3ByaXYpOwo+IEBAIC0zNjcsNyArMzY2LDcgQEAgc3RhdGljIHNzaXplX3QgZ3Rf bWluX2ZyZXFfbWh6X3Nob3coc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUKPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICAJaWYg KElTX1ZBTExFWVZJRVcoZGV2X3ByaXYtPmRldikpCj4gLQkJcmV0ID0gdmx2X2dwdV9mcmVxKGRl dl9wcml2LT5tZW1fZnJlcSwgZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkpOwo+ICsJCXJldCA9IHZs dl9ncHVfZnJlcShkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkpOwo+ICAJZWxzZQo+ ICAJCXJldCA9IGRldl9wcml2LT5ycHMubWluX2RlbGF5ICogR1RfRlJFUVVFTkNZX01VTFRJUExJ RVI7Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gQEAgLTM5NCw3 ICszOTMsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9taW5fZnJlcV9taHpfc3RvcmUoc3RydWN0IGRl dmljZSAqa2RldiwKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gIAo+ ICAJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+IC0JCXZhbCA9IHZsdl9mcmVxX29wY29kZShk ZXZfcHJpdi0+bWVtX2ZyZXEsIHZhbCk7Cj4gKwkJdmFsID0gdmx2X2ZyZXFfb3Bjb2RlKGRldl9w cml2LCB2YWwpOwo+ICAKPiAgCQlod19tYXggPSB2YWxsZXl2aWV3X3Jwc19tYXhfZnJlcShkZXZf cHJpdik7Cj4gIAkJaHdfbWluID0gdmFsbGV5dmlld19ycHNfbWluX2ZyZXEoZGV2X3ByaXYpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IDg2NTAzNWIuLmY1YmI5YjMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtMzYwOSw5ICszNjA5LDkgQEAgc3RhdGljIHZvaWQg dmx2X3VwZGF0ZV9ycHNfY3VyX2RlbGF5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgCj4gIAlpZiAocHZhbCAhPSBkZXZfcHJpdi0+cnBzLmN1cl9kZWxheSkKPiAgCQlEUk1f REVCVUdfRFJJVkVSKCJQdW5pdCBvdmVycm9kZSBHUFUgZnJlcTogJWQgTUh6ICgldSkgcmVxdWVz dGVkLCBidXQgZ290ICVkIE1oeiAoJXUpXG4iLAo+IC0JCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJp di0+bWVtX2ZyZXEsIGRldl9wcml2LT5ycHMuY3VyX2RlbGF5KSwKPiArCQkJCSB2bHZfZ3B1X2Zy ZXEoZGV2X3ByaXYsIGRldl9wcml2LT5ycHMuY3VyX2RlbGF5KSwKPiAgCQkJCSBkZXZfcHJpdi0+ cnBzLmN1cl9kZWxheSwKPiAtCQkJCSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLCBw dmFsKSwgcHZhbCk7Cj4gKwkJCQkgdmx2X2dwdV9mcmVxKGRldl9wcml2LCBwdmFsKSwgcHZhbCk7 Cj4gIAo+ICAJZGV2X3ByaXYtPnJwcy5jdXJfZGVsYXkgPSBwdmFsOwo+ICB9Cj4gQEAgLTM2Mjks MTAgKzM2MjksOSBAQCB2b2lkIHZhbGxleXZpZXdfc2V0X3JwcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1OCB2YWwpCj4gIAl2bHZfdXBkYXRlX3Jwc19jdXJfZGVsYXkoZGV2X3ByaXYpOwo+ICAK PiAgCURSTV9ERUJVR19EUklWRVIoIkdQVSBmcmVxIHJlcXVlc3QgZnJvbSAlZCBNSHogKCV1KSB0 byAlZCBNSHogKCV1KVxuIiwKPiAtCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEs Cj4gLQkJCQkgICAgICBkZXZfcHJpdi0+cnBzLmN1cl9kZWxheSksCj4gKwkJCSB2bHZfZ3B1X2Zy ZXEoZGV2X3ByaXYsIGRldl9wcml2LT5ycHMuY3VyX2RlbGF5KSwKPiAgCQkJIGRldl9wcml2LT5y cHMuY3VyX2RlbGF5LAo+IC0JCQkgdmx2X2dwdV9mcmVxKGRldl9wcml2LT5tZW1fZnJlcSwgdmFs KSwgdmFsKTsKPiArCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdiwgdmFsKSwgdmFsKTsKPiAgCj4g IAlpZiAodmFsID09IGRldl9wcml2LT5ycHMuY3VyX2RlbGF5KQo+ICAJCXJldHVybjsKPiBAQCAt MzY0MSw3ICszNjQwLDcgQEAgdm9pZCB2YWxsZXl2aWV3X3NldF9ycHMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdTggdmFsKQo+ICAKPiAgCWRldl9wcml2LT5ycHMuY3VyX2RlbGF5ID0gdmFsOwo+ ICAKPiAtCXRyYWNlX2ludGVsX2dwdV9mcmVxX2NoYW5nZSh2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYt Pm1lbV9mcmVxLCB2YWwpKTsKPiArCXRyYWNlX2ludGVsX2dwdV9mcmVxX2NoYW5nZSh2bHZfZ3B1 X2ZyZXEoZGV2X3ByaXYsIHZhbCkpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBnZW42X2Rpc2Fi bGVfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBAQCAtNDA3MCwzMiAr NDA2OSwyNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgCj4gIAlkZXZfcHJpdi0+cnBzLmN1cl9kZWxheSA9ICh2YWwgPj4gOCkg JiAweGZmOwo+ICAJRFJNX0RFQlVHX0RSSVZFUigiY3VycmVudCBHUFUgZnJlcTogJWQgTUh6ICgl dSlcbiIsCj4gLQkJCSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLAo+IC0JCQkJICAg ICAgZGV2X3ByaXYtPnJwcy5jdXJfZGVsYXkpLAo+ICsJCQkgdmx2X2dwdV9mcmVxKGRldl9wcml2 LCBkZXZfcHJpdi0+cnBzLmN1cl9kZWxheSksCj4gIAkJCSBkZXZfcHJpdi0+cnBzLmN1cl9kZWxh eSk7Cj4gIAo+ICAJZGV2X3ByaXYtPnJwcy5tYXhfZGVsYXkgPSB2YWxsZXl2aWV3X3Jwc19tYXhf ZnJlcShkZXZfcHJpdik7Cj4gIAlkZXZfcHJpdi0+cnBzLmh3X21heCA9IGRldl9wcml2LT5ycHMu bWF4X2RlbGF5Owo+ICAJRFJNX0RFQlVHX0RSSVZFUigibWF4IEdQVSBmcmVxOiAlZCBNSHogKCV1 KVxuIiwKPiAtCQkJIHZsdl9ncHVfZnJlcShkZXZfcHJpdi0+bWVtX2ZyZXEsCj4gLQkJCQkgICAg ICBkZXZfcHJpdi0+cnBzLm1heF9kZWxheSksCj4gKwkJCSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYs IGRldl9wcml2LT5ycHMubWF4X2RlbGF5KSwKPiAgCQkJIGRldl9wcml2LT5ycHMubWF4X2RlbGF5 KTsKPiAgCj4gIAlkZXZfcHJpdi0+cnBzLnJwZV9kZWxheSA9IHZhbGxleXZpZXdfcnBzX3JwZV9m cmVxKGRldl9wcml2KTsKPiAgCURSTV9ERUJVR19EUklWRVIoIlJQZSBHUFUgZnJlcTogJWQgTUh6 ICgldSlcbiIsCj4gLQkJCSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLAo+IC0JCQkJ ICAgICAgZGV2X3ByaXYtPnJwcy5ycGVfZGVsYXkpLAo+ICsJCQkgdmx2X2dwdV9mcmVxKGRldl9w cml2LCBkZXZfcHJpdi0+cnBzLnJwZV9kZWxheSksCj4gIAkJCSBkZXZfcHJpdi0+cnBzLnJwZV9k ZWxheSk7Cj4gIAo+ICAJZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkgPSB2YWxsZXl2aWV3X3Jwc19t aW5fZnJlcShkZXZfcHJpdik7Cj4gIAlEUk1fREVCVUdfRFJJVkVSKCJtaW4gR1BVIGZyZXE6ICVk IE1IeiAoJXUpXG4iLAo+IC0JCQkgdmx2X2dwdV9mcmVxKGRldl9wcml2LT5tZW1fZnJlcSwKPiAt CQkJCSAgICAgIGRldl9wcml2LT5ycHMubWluX2RlbGF5KSwKPiArCQkJIHZsdl9ncHVfZnJlcShk ZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5taW5fZGVsYXkpLAo+ICAJCQkgZGV2X3ByaXYtPnJwcy5t aW5fZGVsYXkpOwo+ICAKPiAgCURSTV9ERUJVR19EUklWRVIoInNldHRpbmcgR1BVIGZyZXEgdG8g JWQgTUh6ICgldSlcbiIsCj4gLQkJCSB2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYtPm1lbV9mcmVxLAo+ IC0JCQkJICAgICAgZGV2X3ByaXYtPnJwcy5ycGVfZGVsYXkpLAo+ICsJCQkgdmx2X2dwdV9mcmVx KGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLnJwZV9kZWxheSksCj4gIAkJCSBkZXZfcHJpdi0+cnBz LnJwZV9kZWxheSk7Cj4gIAo+ICAJdmFsbGV5dmlld19zZXRfcnBzKGRldl9wcml2LT5kZXYsIGRl dl9wcml2LT5ycHMucnBlX2RlbGF5KTsKPiBAQCAtNTk0NSwxMiArNTkzOSwxMiBAQCBpbnQgc2Fu ZHlicmlkZ2VfcGNvZGVfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 OCBtYm94LCB1MzIgdmFsKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLWludCB2bHZfZ3B1X2Zy ZXEoaW50IGRkcl9mcmVxLCBpbnQgdmFsKQo+ICtpbnQgdmx2X2dwdV9mcmVxKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCkKPiAgewo+ICAJaW50IGRpdjsKPiAgCj4g IAkvKiA0IHggY3pjbGsgKi8KPiAtCXN3aXRjaCAoZGRyX2ZyZXEpIHsKPiArCXN3aXRjaCAoZGV2 X3ByaXYtPm1lbV9mcmVxKSB7Cj4gIAljYXNlIDgwMDoKPiAgCQlkaXYgPSAxMDsKPiAgCQlicmVh azsKPiBAQCAtNTk2NCwxNSArNTk1OCwxNSBAQCBpbnQgdmx2X2dwdV9mcmVxKGludCBkZHJfZnJl cSwgaW50IHZhbCkKPiAgCQlyZXR1cm4gLTE7Cj4gIAl9Cj4gIAo+IC0JcmV0dXJuIERJVl9ST1VO RF9DTE9TRVNUKGRkcl9mcmVxICogKHZhbCArIDYgLSAweGJkKSwgNCAqIGRpdik7Cj4gKwlyZXR1 cm4gRElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYtPm1lbV9mcmVxICogKHZhbCArIDYgLSAweGJk KSwgNCAqIGRpdik7Cj4gIH0KPiAgCj4gLWludCB2bHZfZnJlcV9vcGNvZGUoaW50IGRkcl9mcmVx LCBpbnQgdmFsKQo+ICtpbnQgdmx2X2ZyZXFfb3Bjb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgaW50IHZhbCkKPiAgewo+ICAJaW50IG11bDsKPiAgCj4gIAkvKiA0IHggY3pj bGsgKi8KPiAtCXN3aXRjaCAoZGRyX2ZyZXEpIHsKPiArCXN3aXRjaCAoZGV2X3ByaXYtPm1lbV9m cmVxKSB7Cj4gIAljYXNlIDgwMDoKPiAgCQltdWwgPSAxMDsKPiAgCQlicmVhazsKPiBAQCAtNTk4 Niw3ICs1OTgwLDcgQEAgaW50IHZsdl9mcmVxX29wY29kZShpbnQgZGRyX2ZyZXEsIGludCB2YWwp Cj4gIAkJcmV0dXJuIC0xOwo+ICAJfQo+ICAKPiAtCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVCg0 ICogbXVsICogdmFsLCBkZHJfZnJlcSkgKyAweGJkIC0gNjsKPiArCXJldHVybiBESVZfUk9VTkRf Q0xPU0VTVCg0ICogbXVsICogdmFsLCBkZXZfcHJpdi0+bWVtX2ZyZXEpICsgMHhiZCAtIDY7Cj4g IH0KPiAgCj4gIHZvaWQgaW50ZWxfcG1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoKUmV2 aWV3ZWQtYnk6IEplc3NlIEJhcm5lcyA8amJhcm5lc0B2aXJ0dW91c2dlZWsub3JnPgoKLS0gCkpl c3NlIEJhcm5lcywgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK