From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v9 10/71] drm/i915/chv: Preliminary interrupt support for Cherryview Date: Thu, 08 May 2014 21:24:43 +0300 Message-ID: <871tw42kno.fsf@intel.com> References: <20140409154534.GI9262@phenom.ffwll.local> <1397065252-32176-1-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 8F2186E239 for ; Thu, 8 May 2014 11:24:49 -0700 (PDT) In-Reply-To: <1397065252-32176-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwOSBBcHIgMjAxNCwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPgo+IENIViBo YXMgdGhlIEdlbjggbWFzdGVyIGludGVycnVwdCByZWdpc3RlciwgYXMgd2VsbCBhcyBHZW44Cj4g R1QvUENVIGludGVycnVwdCByZWdpc3RlcnMuCj4KPiBUaGUgZGlzcGxheSBibG9jayBpcyBiYXNl ZCBvbiBWTFYsIHdpdGggdGhlIG1haW4gZGlmZmVyZW5jZQo+IG9mIGFkZGluZyBwaXBlIEMuCj4K PiBGSVhNRTogTG90IG9mIHRoaXMgaXMgY29weSBwYXN0ZWQgZnJvbSBlaXRoZXIgVkxWIG9yIEJE Vy4gV2Ugc2hvdWxkCj4gcHJvYmFibHkgcmVmYWN0b3IgYSBiaXQgdG8gc2hhcmUgdGhlIGNvZGUg YmV0dGVyLgo+Cj4gdjI6IFJld3JpdGUgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgdG8gbWFrZSBt b3JlIHNlbnNlCj4gICAgIERvbid0IGJhaWwgb3V0IGlmIE1BU1RFUl9DVEwgcmVnaXN0ZXIgZG9l c24ndCBzaG93IGFuIGludGVycnVwdCwKPiAgICAgYXMgZGlzcGxheSBpbnRlcnJ1cHRzIGFyZW4n dCByZXBvcnRlZCB0aGVyZS4KPgo+IHYzOiBSZWJhc2Ugb24gdG9wIG9mIEVnYmVydCBFaWNoJ3Mg aHBkIGlycSBoYW5kbGluZyByZXdvcmsgYnkgdXNpbmcKPiB0aGUgcmVsZXZhbnQgcG9ydCBob3Rw bHVnIGxvZ2ljIGxpa2UgZm9yIHZsdi4KPgo+IHY0OiBSZWJhc2Ugb24gdG9wIG9mIEJlbidzIGd0 IGlycSAjZGVmaW5lIHJlZmFjdG9yaW5nLgo+Cj4gdjU6IFNxdWFzaCBpbiBnZW44X2d0X2lycV9o YW5kbGVyIHJlZmFjdG9yaW5nIGZyb20gWmhhbyBZYWt1aQo+IDx5YWt1aS56aGFvQGludGVsLmNv bT4KPgo+IHY2OiBBZGFwdCB0byB1cHN0cmVhbSBjaGFuZ2VzLCBkZXZfcHJpdi0+aXJxX3JlY2Vp dmVkIGlzIGdvbmUuCj4KPiB2NzogRW5hYmxlIDMgdGhlIGNvbW1lbnRlZC1vdXQgMyBwaXBlIHN1 cHBvcnQuCj4KPiB2ODogUmViYXNlIG9uIHRvcCBvZiBQYXVsbydzIGlycSBzZXR1cCByZXdvcmss IHVzZSB0aGUgcmVuYW1lZCBtYWNyb3MgZnJvbQo+IHVwc3RyZWFtLgo+Cj4gdjk6IEdyYWIgaXJx X2xvY2sgYXJvdW5kIGk5MTVfZW5hYmxlX3BpcGVzdGF0KCkKPgo+IEZJWE1FOiBUaGVyZSdzIHBy b2JhYmx5IHNvbWUgcG90ZW50aWFsIGZvciBtb3JlIHNoYXJlZCBjb2RlIGJldHdlZW4gYmR3IGFu ZCBjaHYuCj4KCkkgZGlkIG5vdCBzcG90IGFueXRoaW5nIG91dCBvZiB0aGUgb3JkaW5hcnkgaGVy ZSAob25lIGlycmVsZXZhbnQgbml0cGljawppbmxpbmUpIGJ1dCBmcmFua2x5IEkgZG9uJ3QgaGF2 ZSBodWdlIGNvbmZpZGVuY2UgaW4gbWUgY2F0Y2hpbmcgYWxsIHRoZQpkZXRhaWxzIGVpdGhlci4g V2l0aCB0aGF0IGRpc2NsYWltZXIsCgpSZXZpZXdlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGludGVsLmNvbT4KCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4gKHYyKQo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMgfCAyMjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQo+ICAxIGZpbGUgY2hhbmdlZCwgMjI0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDdhNGQzYWUuLjQ3NTA4OWUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMTcwNSw2ICsxNzA1LDk1IEBAIG91dDoKPiAgCXJl dHVybiByZXQ7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpcnFyZXR1cm5fdCBjaGVycnl2aWV3X2lycV9o YW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IChzdHJ1Y3QgZHJtX2RldmljZSAqKSBhcmc7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJdTMyIG1hc3Rlcl9jdGwsIGlpcjsK PiArCWlycXJldHVybl90IHJldCA9IElSUV9OT05FOwo+ICsJdW5zaWduZWQgaW50IHBpcGVzID0g MDsKPiArCj4gKwltYXN0ZXJfY3RsID0gSTkxNV9SRUFEKEdFTjhfTUFTVEVSX0lSUSk7Cj4gKwo+ ICsJSTkxNV9XUklURShHRU44X01BU1RFUl9JUlEsIDApOwo+ICsKPiArCXJldCA9IGdlbjhfZ3Rf aXJxX2hhbmRsZXIoZGV2LCBkZXZfcHJpdiwgbWFzdGVyX2N0bCk7Cj4gKwo+ICsJaWlyID0gSTkx NV9SRUFEKFZMVl9JSVIpOwo+ICsKPiArCWlmIChpaXIgJiAoSTkxNV9ESVNQTEFZX1BJUEVfQV9W QkxBTktfSU5URVJSVVBUIHwgSTkxNV9ESVNQTEFZX1BJUEVfQV9FVkVOVF9JTlRFUlJVUFQpKQo+ ICsJCXBpcGVzIHw9IDEgPDwgMDsKPiArCWlmIChpaXIgJiAoSTkxNV9ESVNQTEFZX1BJUEVfQl9W QkxBTktfSU5URVJSVVBUIHwgSTkxNV9ESVNQTEFZX1BJUEVfQl9FVkVOVF9JTlRFUlJVUFQpKQo+ ICsJCXBpcGVzIHw9IDEgPDwgMTsKPiArCWlmIChpaXIgJiAoSTkxNV9ESVNQTEFZX1BJUEVfQ19W QkxBTktfSU5URVJSVVBUIHwgSTkxNV9ESVNQTEFZX1BJUEVfQ19FVkVOVF9JTlRFUlJVUFQpKQo+ ICsJCXBpcGVzIHw9IDEgPDwgMjsKPiArCj4gKwlpZiAocGlwZXMpIHsKPiArCQl1MzIgcGlwZV9z dGF0c1tJOTE1X01BWF9QSVBFU10gPSB7fTsKPiArCQl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ ICsJCWludCBwaXBlOwo+ICsKPiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9s b2NrLCBpcnFmbGFncyk7Cj4gKwkJZm9yX2VhY2hfcGlwZShwaXBlKSB7Cj4gKwkJCXVuc2lnbmVk IGludCByZWc7Cj4gKwo+ICsJCQlpZiAoIShwaXBlcyAmICgxIDw8IHBpcGUpKSkKPiArCQkJCWNv bnRpbnVlOwo+ICsKPiArCQkJcmVnID0gUElQRVNUQVQocGlwZSk7Cj4gKwkJCXBpcGVfc3RhdHNb cGlwZV0gPSBJOTE1X1JFQUQocmVnKTsKPiArCj4gKwkJCS8qCj4gKwkJCSAqIENsZWFyIHRoZSBQ SVBFKlNUQVQgcmVncyBiZWZvcmUgdGhlIElJUgo+ICsJCQkgKi8KPiArCQkJaWYgKHBpcGVfc3Rh dHNbcGlwZV0gJiAweDgwMDBmZmZmKSB7Cj4gKwkJCQlpZiAocGlwZV9zdGF0c1twaXBlXSAmIFBJ UEVfRklGT19VTkRFUlJVTl9TVEFUVVMpCj4gKwkJCQkJRFJNX0RFQlVHX0RSSVZFUigicGlwZSAl YyB1bmRlcnJ1blxuIiwKPiArCQkJCQkJCSBwaXBlX25hbWUocGlwZSkpOwo+ICsJCQkJSTkxNV9X UklURShyZWcsIHBpcGVfc3RhdHNbcGlwZV0pOwo+ICsJCQl9Cj4gKwkJfQo+ICsJCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+ICsKPiArCQlm b3JfZWFjaF9waXBlKHBpcGUpIHsKPiArCQkJaWYgKHBpcGVfc3RhdHNbcGlwZV0gJiBQSVBFX1ZC TEFOS19JTlRFUlJVUFRfU1RBVFVTKQo+ICsJCQkJZHJtX2hhbmRsZV92YmxhbmsoZGV2LCBwaXBl KTsKPiArCj4gKwkJCWlmIChwaXBlX3N0YXRzW3BpcGVdICYgUExBTkVfRkxJUF9ET05FX0lOVF9T VEFUVVNfVkxWKSB7Cj4gKwkJCQlpbnRlbF9wcmVwYXJlX3BhZ2VfZmxpcChkZXYsIHBpcGUpOwo+ ICsJCQkJaW50ZWxfZmluaXNoX3BhZ2VfZmxpcChkZXYsIHBpcGUpOwo+ICsJCQl9Cj4gKwkJfQo+ ICsKPiArCQlpZiAocGlwZV9zdGF0c1swXSAmIFBJUEVfR01CVVNfSU5URVJSVVBUX1NUQVRVUykK PiArCQkJZ21idXNfaXJxX2hhbmRsZXIoZGV2KTsKPiArCj4gKwkJcmV0ID0gSVJRX0hBTkRMRUQ7 Cj4gKwl9Cj4gKwo+ICsJLyogQ29uc3VtZSBwb3J0LiAgVGhlbiBjbGVhciBJSVIgb3Igd2UnbGwg bWlzcyBldmVudHMgKi8KPiArCWlmIChpaXIgJiBJOTE1X0RJU1BMQVlfUE9SVF9JTlRFUlJVUFQp IHsKPiArCQl1MzIgaG90cGx1Z19zdGF0dXMgPSBJOTE1X1JFQUQoUE9SVF9IT1RQTFVHX1NUQVQp Owo+ICsKPiArCQlJOTE1X1dSSVRFKFBPUlRfSE9UUExVR19TVEFULCBob3RwbHVnX3N0YXR1cyk7 Cj4gKwo+ICsJCURSTV9ERUJVR19EUklWRVIoImhvdHBsdWcgZXZlbnQgcmVjZWl2ZWQsIHN0YXQg MHglMDh4XG4iLAo+ICsJCQkJIGhvdHBsdWdfc3RhdHVzKTsKPiArCQlpZiAoaG90cGx1Z19zdGF0 dXMgJiBIT1RQTFVHX0lOVF9TVEFUVVNfSTkxNSkKPiArCQkJcXVldWVfd29yayhkZXZfcHJpdi0+ d3EsCj4gKwkJCQkgICAmZGV2X3ByaXYtPmhvdHBsdWdfd29yayk7Cj4gKwo+ICsJCXJldCA9IElS UV9IQU5ETEVEOwo+ICsJfQo+ICsKPiArCUk5MTVfV1JJVEUoVkxWX0lJUiwgaWlyKTsKPiArCj4g KwlJOTE1X1dSSVRFKEdFTjhfTUFTVEVSX0lSUSwgREVfTUFTVEVSX0lSUV9DT05UUk9MKTsKPiAr CVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9JUlEpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30K PiArCj4gIHN0YXRpYyB2b2lkIGlieF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1MzIgcGNoX2lpcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMjk2Nyw2ICszMDU2LDM3IEBAIHN0YXRpYyB2b2lk IGdlbjhfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWdlbjhfaXJx X3Jlc2V0KGRldik7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGNoZXJyeXZpZXdfaXJxX3ByZWlu c3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICopIGRldi0+ZGV2X3By aXZhdGU7CgpVbm5lY2Vzc2FyeSBjYXN0LgoKPiArCWludCBwaXBlOwo+ICsKPiArCUk5MTVfV1JJ VEUoR0VOOF9NQVNURVJfSVJRLCAwKTsKPiArCVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9JUlEp Owo+ICsKPiArCUdFTjhfSVJRX1JFU0VUX05EWChHVCwgMCk7Cj4gKwlHRU44X0lSUV9SRVNFVF9O RFgoR1QsIDEpOwo+ICsJR0VOOF9JUlFfUkVTRVRfTkRYKEdULCAyKTsKPiArCUdFTjhfSVJRX1JF U0VUX05EWChHVCwgMyk7Cj4gKwo+ICsJR0VONV9JUlFfUkVTRVQoR0VOOF9QQ1VfKTsKPiArCj4g KwlQT1NUSU5HX1JFQUQoR0VOOF9QQ1VfSUlSKTsKPiArCj4gKwlJOTE1X1dSSVRFKERQSU5WR1RU LCBEUElOVkdUVF9TVEFUVVNfTUFTS19DSFYpOwo+ICsKPiArCUk5MTVfV1JJVEUoUE9SVF9IT1RQ TFVHX0VOLCAwKTsKPiArCUk5MTVfV1JJVEUoUE9SVF9IT1RQTFVHX1NUQVQsIEk5MTVfUkVBRChQ T1JUX0hPVFBMVUdfU1RBVCkpOwo+ICsKPiArCWZvcl9lYWNoX3BpcGUocGlwZSkKPiArCQlJOTE1 X1dSSVRFKFBJUEVTVEFUKHBpcGUpLCAweGZmZmYpOwo+ICsKPiArCUk5MTVfV1JJVEUoVkxWX0lN UiwgMHhmZmZmZmZmZik7Cj4gKwlJOTE1X1dSSVRFKFZMVl9JRVIsIDB4MCk7Cj4gKwlJOTE1X1dS SVRFKFZMVl9JSVIsIDB4ZmZmZmZmZmYpOwo+ICsJUE9TVElOR19SRUFEKFZMVl9JSVIpOwo+ICt9 Cj4gKwo+ICBzdGF0aWMgdm9pZCBpYnhfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+IEBAIC0zMjg0LDYgKzM0MDQsNTAgQEAgc3RhdGljIGludCBnZW44X2lycV9w b3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAg Cj4gK3N0YXRpYyBpbnQgY2hlcnJ5dmlld19pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiArCXUzMiBlbmFibGVfbWFzayA9IEk5MTVfRElTUExBWV9QT1JUX0lO VEVSUlVQVCB8Cj4gKwkJSTkxNV9ESVNQTEFZX1BJUEVfQV9FVkVOVF9JTlRFUlJVUFQgfAo+ICsJ CUk5MTVfRElTUExBWV9QSVBFX0FfVkJMQU5LX0lOVEVSUlVQVCB8Cj4gKwkJSTkxNV9ESVNQTEFZ X1BJUEVfQl9FVkVOVF9JTlRFUlJVUFQgfAo+ICsJCUk5MTVfRElTUExBWV9QSVBFX0JfVkJMQU5L X0lOVEVSUlVQVCB8Cj4gKwkJSTkxNV9ESVNQTEFZX1BJUEVfQ19FVkVOVF9JTlRFUlJVUFQgfAo+ ICsJCUk5MTVfRElTUExBWV9QSVBFX0NfVkJMQU5LX0lOVEVSUlVQVDsKPiArCXUzMiBwaXBlc3Rh dF9lbmFibGUgPSBQTEFORV9GTElQX0RPTkVfSU5UX0VOX1ZMVjsKPiArCXVuc2lnbmVkIGxvbmcg aXJxZmxhZ3M7Cj4gKwlpbnQgcGlwZTsKPiArCj4gKwkvKgo+ICsJICogTGVhdmUgdmJsYW5rIGlu dGVycnVwdHMgbWFza2VkIGluaXRpYWxseS4gIGVuYWJsZS9kaXNhYmxlIHdpbGwKPiArCSAqIHRv Z2dsZSB0aGVtIGJhc2VkIG9uIHVzYWdlLgo+ICsJICovCj4gKwlkZXZfcHJpdi0+aXJxX21hc2sg PSB+ZW5hYmxlX21hc2sgfAo+ICsJCUk5MTVfRElTUExBWV9QSVBFX0FfVkJMQU5LX0lOVEVSUlVQ VCB8Cj4gKwkJSTkxNV9ESVNQTEFZX1BJUEVfQl9WQkxBTktfSU5URVJSVVBUIHwKPiArCQlJOTE1 X0RJU1BMQVlfUElQRV9DX1ZCTEFOS19JTlRFUlJVUFQ7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZShw aXBlKQo+ICsJCUk5MTVfV1JJVEUoUElQRVNUQVQocGlwZSksIDB4ZmZmZik7Cj4gKwo+ICsJc3Bp bl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+ICsJaTkxNV9l bmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIDAsIFBJUEVfR01CVVNfRVZFTlRfRU5BQkxFKTsKPiAr CWZvcl9lYWNoX3BpcGUocGlwZSkKPiArCQlpOTE1X2VuYWJsZV9waXBlc3RhdChkZXZfcHJpdiwg cGlwZSwgcGlwZXN0YXRfZW5hYmxlKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9w cml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+ICsKPiArCUk5MTVfV1JJVEUoVkxWX0lJUiwgMHhm ZmZmZmZmZik7Cj4gKwlJOTE1X1dSSVRFKFZMVl9JTVIsIGRldl9wcml2LT5pcnFfbWFzayk7Cj4g KwlJOTE1X1dSSVRFKFZMVl9JRVIsIGVuYWJsZV9tYXNrKTsKPiArCj4gKwlnZW44X2d0X2lycV9w b3N0aW5zdGFsbChkZXZfcHJpdik7Cj4gKwo+ICsJSTkxNV9XUklURShHRU44X01BU1RFUl9JUlEs IE1BU1RFUl9JTlRFUlJVUFRfRU5BQkxFKTsKPiArCVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9J UlEpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBnZW44X2lycV91 bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMzMyNyw2ICszNDkx LDU3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAJUE9TVElOR19SRUFEKFZMVl9JRVIpOwo+ICB9Cj4gIAo+ICtzdGF0aWMg dm9pZCBjaGVycnl2aWV3X2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAr ewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiArCWludCBwaXBlOwo+ICsKPiArCWlmICghZGV2X3ByaXYpCj4gKwkJcmV0dXJuOwo+ICsK PiArCUk5MTVfV1JJVEUoR0VOOF9NQVNURVJfSVJRLCAwKTsKPiArCVBPU1RJTkdfUkVBRChHRU44 X01BU1RFUl9JUlEpOwo+ICsKPiArI2RlZmluZSBHRU44X0lSUV9GSU5JX05EWCh0eXBlLCB3aGlj aCkJCQkJXAo+ICtkbyB7CQkJCQkJCQlcCj4gKwlJOTE1X1dSSVRFKEdFTjhfIyN0eXBlIyNfSU1S KHdoaWNoKSwgMHhmZmZmZmZmZik7CVwKPiArCUk5MTVfV1JJVEUoR0VOOF8jI3R5cGUjI19JRVIo d2hpY2gpLCAwKTsJCVwKPiArCUk5MTVfV1JJVEUoR0VOOF8jI3R5cGUjI19JSVIod2hpY2gpLCAw eGZmZmZmZmZmKTsJXAo+ICsJUE9TVElOR19SRUFEKEdFTjhfIyN0eXBlIyNfSUlSKHdoaWNoKSk7 CQkJXAo+ICsJSTkxNV9XUklURShHRU44XyMjdHlwZSMjX0lJUih3aGljaCksIDB4ZmZmZmZmZmYp OwlcCj4gK30gd2hpbGUgKDApCj4gKwo+ICsjZGVmaW5lIEdFTjhfSVJRX0ZJTkkodHlwZSkJCQkJ XAo+ICtkbyB7CQkJCQkJCVwKPiArCUk5MTVfV1JJVEUoR0VOOF8jI3R5cGUjI19JTVIsIDB4ZmZm ZmZmZmYpOwlcCj4gKwlJOTE1X1dSSVRFKEdFTjhfIyN0eXBlIyNfSUVSLCAwKTsJCVwKPiArCUk5 MTVfV1JJVEUoR0VOOF8jI3R5cGUjI19JSVIsIDB4ZmZmZmZmZmYpOwlcCj4gKwlQT1NUSU5HX1JF QUQoR0VOOF8jI3R5cGUjI19JSVIpOwkJXAo+ICsJSTkxNV9XUklURShHRU44XyMjdHlwZSMjX0lJ UiwgMHhmZmZmZmZmZik7CVwKPiArfSB3aGlsZSAoMCkKPiArCj4gKwlHRU44X0lSUV9GSU5JX05E WChHVCwgMCk7Cj4gKwlHRU44X0lSUV9GSU5JX05EWChHVCwgMSk7Cj4gKwlHRU44X0lSUV9GSU5J X05EWChHVCwgMik7Cj4gKwlHRU44X0lSUV9GSU5JX05EWChHVCwgMyk7Cj4gKwo+ICsJR0VOOF9J UlFfRklOSShQQ1UpOwo+ICsKPiArI3VuZGVmIEdFTjhfSVJRX0ZJTkkKPiArI3VuZGVmIEdFTjhf SVJRX0ZJTklfTkRYCj4gKwo+ICsJSTkxNV9XUklURShQT1JUX0hPVFBMVUdfRU4sIDApOwo+ICsJ STkxNV9XUklURShQT1JUX0hPVFBMVUdfU1RBVCwgSTkxNV9SRUFEKFBPUlRfSE9UUExVR19TVEFU KSk7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZShwaXBlKQo+ICsJCUk5MTVfV1JJVEUoUElQRVNUQVQo cGlwZSksIDB4ZmZmZik7Cj4gKwo+ICsJSTkxNV9XUklURShWTFZfSU1SLCAweGZmZmZmZmZmKTsK PiArCUk5MTVfV1JJVEUoVkxWX0lFUiwgMHgwKTsKPiArCUk5MTVfV1JJVEUoVkxWX0lJUiwgMHhm ZmZmZmZmZik7Cj4gKwlQT1NUSU5HX1JFQUQoVkxWX0lJUik7Cj4gK30KPiArCj4gIHN0YXRpYyB2 b2lkIGlyb25sYWtlX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiBAQCAtNDAzMiw3ICs0MjQ3LDE1IEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgCQlkZXYtPmRyaXZlci0+Z2V0X3NjYW5vdXRfcG9zaXRpb24gPSBpOTE1 X2dldF9jcnRjX3NjYW5vdXRwb3M7Cj4gIAl9Cj4gIAo+IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2 KSkgewo+ICsJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJCWRldi0+ZHJpdmVyLT5pcnFf aGFuZGxlciA9IGNoZXJyeXZpZXdfaXJxX2hhbmRsZXI7Cj4gKwkJZGV2LT5kcml2ZXItPmlycV9w cmVpbnN0YWxsID0gY2hlcnJ5dmlld19pcnFfcHJlaW5zdGFsbDsKPiArCQlkZXYtPmRyaXZlci0+ aXJxX3Bvc3RpbnN0YWxsID0gY2hlcnJ5dmlld19pcnFfcG9zdGluc3RhbGw7Cj4gKwkJZGV2LT5k cml2ZXItPmlycV91bmluc3RhbGwgPSBjaGVycnl2aWV3X2lycV91bmluc3RhbGw7Cj4gKwkJZGV2 LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSB2YWxsZXl2aWV3X2VuYWJsZV92Ymxhbms7Cj4gKwkJ ZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gdmFsbGV5dmlld19kaXNhYmxlX3ZibGFuazsK PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaTkxNV9ocGRfaXJxX3NldHVw Owo+ICsJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKPiAgCQlkZXYtPmRyaXZlci0+ aXJxX2hhbmRsZXIgPSB2YWxsZXl2aWV3X2lycV9oYW5kbGVyOwo+ICAJCWRldi0+ZHJpdmVyLT5p cnFfcHJlaW5zdGFsbCA9IHZhbGxleXZpZXdfaXJxX3ByZWluc3RhbGw7Cj4gIAkJZGV2LT5kcml2 ZXItPmlycV9wb3N0aW5zdGFsbCA9IHZhbGxleXZpZXdfaXJxX3Bvc3RpbnN0YWxsOwo+IC0tIAo+ IDEuOC4zLjIKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2Vu dGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==