From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: Re: [PATCH 05/24] drm/i915/icp: Add Interrupt Support Date: Thu, 24 May 2018 16:53:58 -0700 Message-ID: <20180524235355.GA2951@ldmartin-desk.amr.corp.intel.com> References: <20180522002558.29262-1-paulo.r.zanoni@intel.com> <20180522002558.29262-6-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x244.google.com (mail-pf0-x244.google.com [IPv6:2607:f8b0:400e:c00::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id A8FA46E70F for ; Thu, 24 May 2018 23:54:34 +0000 (UTC) Received: by mail-pf0-x244.google.com with SMTP id f189-v6so1648701pfa.7 for ; Thu, 24 May 2018 16:54:34 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180522002558.29262-6-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMjEsIDIwMTggYXQgMDU6MjU6MzlQTSAtMDcwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEZyb206IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4K PiAKPiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBJbnRlcnJ1cHRzIGZyb20gc291dGggZGlzcGxheSBl bmdpbmUgKFNERSkuCj4gCj4gSUNQIGhhcyB0d28gcmVnaXN0ZXJzIC0gU0hPVFBMVUdfQ1RMX0RE SSBhbmQgU0hPVFBMVUdfQ1RMX1RDLgo+IEludHJvZHVjZSB0aGVzZSByZWdpc3RlcnMgYW5kIHRo ZWlyIGludGVuZGVkIHZhbHVlcy4KPiAKPiBJbnRyb2R1Y2UgaWNwX2lycV9oYW5kbGVyKCkuCj4g Cj4gQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+IENjOiBEaGlu YWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiBDYzogVmls bGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+IFtQYXVsbzog Y29kaW5nIHN0eWxlIGJpa2VzaGVkcyBhbmQgcmViYXNlc10uCj4gU2lnbmVkLW9mZi1ieTogUGF1 bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgfCAxMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIHwgIDQwICsrKysr KysrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDliY2VjNWZkYjlkMC4uNmIx MDk5OTE3ODZmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTEyMiw2ICsxMjIs MTUgQEAgc3RhdGljIGNvbnN0IHUzMiBocGRfdGNfZ2VuMTFbSFBEX05VTV9QSU5TXSA9IHsKPiAg CVtIUERfUE9SVF9GXSA9IEdFTjExX1RDNF9IT1RQTFVHCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29u c3QgdTMyIGhwZF9pY3BbSFBEX05VTV9QSU5TXSA9IHsKPiArCVtIUERfUE9SVF9BXSA9IElDUF9E RElBX0hPVFBMVUcsCj4gKwlbSFBEX1BPUlRfQl0gPSBJQ1BfRERJQl9IT1RQTFVHLAo+ICsJW0hQ RF9QT1JUX0NdID0gSUNQX1RDMV9IT1RQTFVHLAo+ICsJW0hQRF9QT1JUX0RdID0gSUNQX1RDMl9I T1RQTFVHLAo+ICsJW0hQRF9QT1JUX0VdID0gSUNQX1RDM19IT1RQTFVHLAo+ICsJW0hQRF9QT1JU X0ZdID0gSUNQX1RDNF9IT1RQTFVHCj4gK307Cj4gKwo+ICAvKiBJSVIgY2FuIHRoZW9yZXRpY2Fs bHkgcXVldWUgdXAgdHdvIGV2ZW50cy4gQmUgcGFyYW5vaWQuICovCj4gICNkZWZpbmUgR0VOOF9J UlFfUkVTRVRfTkRYKHR5cGUsIHdoaWNoKSBkbyB7IFwKPiAgCUk5MTVfV1JJVEUoR0VOOF8jI3R5 cGUjI19JTVIod2hpY2gpLCAweGZmZmZmZmZmKTsgXAo+IEBAIC0xNTg2LDYgKzE1OTUsMzQgQEAg c3RhdGljIGJvb2wgYnh0X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdChlbnVtIHBvcnQgcG9ydCwg dTMyIHZhbCkKPiAgCX0KPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgaWNwX2RkaV9wb3J0X2hvdHBs dWdfbG9uZ19kZXRlY3QoZW51bSBwb3J0IHBvcnQsIHUzMiB2YWwpCj4gK3sKPiArCXN3aXRjaCAo cG9ydCkgewo+ICsJY2FzZSBQT1JUX0E6Cj4gKwkJcmV0dXJuIHZhbCAmIElDUF9ERElBX0hQRF9M T05HX0RFVEVDVDsKPiArCWNhc2UgUE9SVF9COgo+ICsJCXJldHVybiB2YWwgJiBJQ1BfRERJQl9I UERfTE9OR19ERVRFQ1Q7Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiAr fQo+ICsKPiArc3RhdGljIGJvb2wgaWNwX3RjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdChlbnVt IHBvcnQgcG9ydCwgdTMyIHZhbCkKPiArewo+ICsJc3dpdGNoIChwb3J0KSB7Cj4gKwljYXNlIFBP UlRfQzoKPiArCQlyZXR1cm4gdmFsICYgSUNQX1RDX0hQRF9MT05HX0RFVEVDVChQT1JUX1RDMSk7 Cj4gKwljYXNlIFBPUlRfRDoKPiArCQlyZXR1cm4gdmFsICYgSUNQX1RDX0hQRF9MT05HX0RFVEVD VChQT1JUX1RDMik7Cj4gKwljYXNlIFBPUlRfRToKPiArCQlyZXR1cm4gdmFsICYgSUNQX1RDX0hQ RF9MT05HX0RFVEVDVChQT1JUX1RDMyk7Cj4gKwljYXNlIFBPUlRfRjoKPiArCQlyZXR1cm4gdmFs ICYgSUNQX1RDX0hQRF9MT05HX0RFVEVDVChQT1JUX1RDNCk7Cj4gKwlkZWZhdWx0Ogo+ICsJCXJl dHVybiBmYWxzZTsKPiArCX0KPiArfQo+ICsKPiAgc3RhdGljIGJvb2wgc3B0X3BvcnRfaG90cGx1 ZzJfbG9uZ19kZXRlY3QoZW51bSBwb3J0IHBvcnQsIHUzMiB2YWwpCj4gIHsKPiAgCXN3aXRjaCAo cG9ydCkgewo+IEBAIC0yMzc3LDYgKzI0MTQsNDMgQEAgc3RhdGljIHZvaWQgY3B0X2lycV9oYW5k bGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCj4gIAkJ Y3B0X3NlcnJfaW50X2hhbmRsZXIoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBp Y3BfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNo X2lpcikKPiArewo+ICsJdTMyIGRkaV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgSUNQX1NE RV9ERElfTUFTSzsKPiArCXUzMiB0Y19ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgSUNQX1NE RV9UQ19NQVNLOwo+ICsJdTMyIHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKPiArCj4gKwlp ZiAoZGRpX2hvdHBsdWdfdHJpZ2dlcikgewo+ICsJCXUzMiBkaWdfaG90cGx1Z19yZWc7Cj4gKwo+ ICsJCWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChTSE9UUExVR19DVExfRERJKTsKPiArCQlJ OTE1X1dSSVRFKFNIT1RQTFVHX0NUTF9EREksIGRpZ19ob3RwbHVnX3JlZyk7Cj4gKwo+ICsJCWlu dGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAo+ICsJCQkJ ICAgZGRpX2hvdHBsdWdfdHJpZ2dlciwKPiArCQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX2lj cCwKPiArCQkJCSAgIGljcF9kZGlfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKPiArCX0KPiAr Cj4gKwlpZiAodGNfaG90cGx1Z190cmlnZ2VyKSB7Cj4gKwkJdTMyIGRpZ19ob3RwbHVnX3JlZzsK PiArCj4gKwkJZGlnX2hvdHBsdWdfcmVnID0gSTkxNV9SRUFEKFNIT1RQTFVHX0NUTF9UQyk7Cj4g KwkJSTkxNV9XUklURShTSE9UUExVR19DVExfVEMsIGRpZ19ob3RwbHVnX3JlZyk7Cj4gKwo+ICsJ CWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAo+ICsJ CQkJICAgdGNfaG90cGx1Z190cmlnZ2VyLAo+ICsJCQkJICAgZGlnX2hvdHBsdWdfcmVnLCBocGRf aWNwLAo+ICsJCQkJICAgaWNwX3RjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7Cj4gKwl9Cj4g Kwo+ICsJaWYgKHBpbl9tYXNrKQo+ICsJCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwg cGluX21hc2ssIGxvbmdfbWFzayk7Cj4gKwo+ICsJaWYgKHBjaF9paXIgJiBJQ1BfR01CVVMpCj4g KwkJZ21idXNfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBz cHRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNo X2lpcikKPiAgewo+ICAJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfSE9UUExV R19NQVNLX1NQVCAmCj4gQEAgLTI3NzksOCArMjg1MywxMSBAQCBnZW44X2RlX2lycV9oYW5kbGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1hc3Rlcl9jdGwpCj4gIAkJ CUk5MTVfV1JJVEUoU0RFSUlSLCBpaXIpOwo+ICAJCQlyZXQgPSBJUlFfSEFORExFRDsKPiAgCj4g LQkJCWlmIChIQVNfUENIX1NQVChkZXZfcHJpdikgfHwgSEFTX1BDSF9LQlAoZGV2X3ByaXYpIHx8 Cj4gLQkJCSAgICBIQVNfUENIX0NOUChkZXZfcHJpdikpCj4gKwkJCWlmIChIQVNfUENIX0lDUChk ZXZfcHJpdikpCj4gKwkJCQlpY3BfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGlpcik7Cj4gKwkJCWVs c2UgaWYgKEhBU19QQ0hfU1BUKGRldl9wcml2KSB8fAo+ICsJCQkJIEhBU19QQ0hfS0JQKGRldl9w cml2KSB8fAo+ICsJCQkJIEhBU19QQ0hfQ05QKGRldl9wcml2KSkKPiAgCQkJCXNwdF9pcnFfaGFu ZGxlcihkZXZfcHJpdiwgaWlyKTsKPiAgCQkJZWxzZQo+ICAJCQkJY3B0X2lycV9oYW5kbGVyKGRl dl9wcml2LCBpaXIpOwo+IEBAIC0zNTQ4LDYgKzM2MjUsOSBAQCBzdGF0aWMgdm9pZCBnZW4xMV9p cnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCUdFTjNfSVJRX1JFU0VUKEdFTjEx X0RFX0hQRF8pOwo+ICAJR0VOM19JUlFfUkVTRVQoR0VOMTFfR1VfTUlTQ18pOwo+ICAJR0VOM19J UlFfUkVTRVQoR0VOOF9QQ1VfKTsKPiArCj4gKwlpZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYpKQo+ ICsJCUdFTjNfSVJRX1JFU0VUKElDUF9TREVfKTsKPiAgfQo+ICAKPiAgdm9pZCBnZW44X2lycV9w b3dlcl93ZWxsX3Bvc3RfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiBAQCAtMzY2NCw2ICszNzQ0LDM1IEBAIHN0YXRpYyB2b2lkIGlieF9ocGRfaXJxX3NldHVwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWlieF9ocGRfZGV0ZWN0aW9uX3Nl dHVwKGRldl9wcml2KTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaWNwX2hwZF9kZXRlY3Rpb25f c2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwl1MzIgaG90 cGx1ZzsKPiArCj4gKwlob3RwbHVnID0gSTkxNV9SRUFEKFNIT1RQTFVHX0NUTF9EREkpOwo+ICsJ aG90cGx1ZyB8PSBJQ1BfRERJQV9IUERfRU5BQkxFIHwKPiArCQkgICBJQ1BfRERJQl9IUERfRU5B QkxFOwo+ICsJSTkxNV9XUklURShTSE9UUExVR19DVExfRERJLCBob3RwbHVnKTsKPiArCj4gKwlo b3RwbHVnID0gSTkxNV9SRUFEKFNIT1RQTFVHX0NUTF9UQyk7Cj4gKwlob3RwbHVnIHw9IElDUF9U Q19IUERfRU5BQkxFKFBPUlRfVEMxKSB8Cj4gKwkJICAgSUNQX1RDX0hQRF9FTkFCTEUoUE9SVF9U QzIpIHwKPiArCQkgICBJQ1BfVENfSFBEX0VOQUJMRShQT1JUX1RDMykgfAo+ICsJCSAgIElDUF9U Q19IUERfRU5BQkxFKFBPUlRfVEM0KTsKPiArCUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX1RDLCBo b3RwbHVnKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaWNwX2hwZF9pcnFfc2V0dXAoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwl1MzIgaG90cGx1Z19pcnFzLCBl bmFibGVkX2lycXM7Cj4gKwo+ICsJaG90cGx1Z19pcnFzID0gSUNQX1NERV9ERElfTUFTSyB8IElD UF9TREVfVENfTUFTSzsKPiArCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMo ZGV2X3ByaXYsIGhwZF9pY3ApOwo+ICsKPiArCWlieF9kaXNwbGF5X2ludGVycnVwdF91cGRhdGUo ZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzKTsKPiArCj4gKwlpY3BfaHBkX2Rl dGVjdGlvbl9zZXR1cChkZXZfcHJpdik7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGdlbjExX2hw ZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7 Cj4gIAl1MzIgaG90cGx1ZzsKPiBAQCAtMzY5MCw2ICszNzk5LDkgQEAgc3RhdGljIHZvaWQgZ2Vu MTFfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlQ T1NUSU5HX1JFQUQoR0VOMTFfREVfSFBEX0lNUik7Cj4gIAo+ICAJZ2VuMTFfaHBkX2RldGVjdGlv bl9zZXR1cChkZXZfcHJpdik7Cj4gKwo+ICsJaWYgKEhBU19QQ0hfSUNQKGRldl9wcml2KSkKPiAr CQlpY3BfaHBkX2lycV9zZXR1cChkZXZfcHJpdik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHNw dF9ocGRfZGV0ZWN0aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiBAQCAtNDEyMSwxMSArNDIzMywyOSBAQCBzdGF0aWMgdm9pZCBnZW4xMV9ndF9pcnFfcG9zdGlu c3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJSTkxNV9XUklURShH RU4xMV9HUE1fV0dCT1hQRVJGX0lOVFJfTUFTSywgIH4wKTsKPiAgfQo+ICAKPiArc3RhdGljIHZv aWQgaWNwX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwl1MzIg bWFzayA9IElDUF9HTUJVUzsKPiArCj4gKwlXQVJOX09OKEk5MTVfUkVBRChJQ1BfU0RFX0lFUikg IT0gMCk7Cj4gKwlJOTE1X1dSSVRFKElDUF9TREVfSUVSLCAweGZmZmZmZmZmKTsKPiArCVBPU1RJ TkdfUkVBRChJQ1BfU0RFX0lFUik7Cj4gKwo+ICsJZ2VuM19hc3NlcnRfaWlyX2lzX3plcm8oZGV2 X3ByaXYsIElDUF9TREVfSUlSKTsKPiArCUk5MTVfV1JJVEUoSUNQX1NERV9JTVIsIH5tYXNrKTsK PiArCj4gKwlpY3BfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdik7Cj4gK30KPiArCj4gIHN0 YXRpYyBpbnQgZ2VuMTFfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gIAl1MzIgZ3VfbWlzY19tYXNrZWQgPSBHRU4xMV9HVV9NSVNDX0dTRTsKPiAgCj4gKwlp ZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYpKQo+ICsJCWljcF9pcnFfcG9zdGluc3RhbGwoZGV2KTsK PiArCj4gIAlnZW4xMV9ndF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwo+ICAJZ2VuOF9kZV9p cnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBp bmRleCAxOTYwMDA5NzU4MWYuLjI4Y2U5NmNlMDQ4NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+IEBAIC03NDYwLDYgKzc0NjAsNDYgQEAgZW51bSB7Cj4gICNkZWZpbmUgIFBPUlRFX0hP VFBMVUdfU0hPUlRfREVURUNUCSgxIDw8IDApCj4gICNkZWZpbmUgIFBPUlRFX0hPVFBMVUdfTE9O R19ERVRFQ1QJKDIgPDwgMCkKPiAgCj4gKy8qIElDUCAqLwo+ICsjZGVmaW5lIElDUF9TREVfSVNS CQkJX01NSU8oMHhjNDAwMCkKPiArI2RlZmluZSBJQ1BfU0RFX0lNUgkJCV9NTUlPKDB4YzQwMDQp Cj4gKyNkZWZpbmUgSUNQX1NERV9JSVIJCQlfTU1JTygweGM0MDA4KQo+ICsjZGVmaW5lIElDUF9T REVfSUVSCQkJX01NSU8oMHhjNDAwYykKClRoZXNlIGFyZSBleGFjdGx5IHRoZSBzYW1lIHJlZ2lz dGVycyBhcyBTREV7SVNSLElNUixJSVIsSUVSfS4gRm9yIGFsbAp0aGUgb3RoZXIgcGxhdGZvcm1z IHdoYXQgd2UgZG8gaXMgcmF0aGVyIHBvc3RmaXggdGhlIHBsYXRmb3JtIG5hbWUuCgpJIHRoaW5r IHdlIHNob3VsZCBmb2xsb3cgd2hhdCB0aGV5IGRvIGhlcmUuCgoKPiArI2RlZmluZSAgIElDUF9U QzRfSE9UUExVRwkJKDEgPDwgMjcpCj4gKyNkZWZpbmUgICBJQ1BfVEMzX0hPVFBMVUcJCSgxIDw8 IDI2KQo+ICsjZGVmaW5lICAgSUNQX1RDMl9IT1RQTFVHCQkoMSA8PCAyNSkKPiArI2RlZmluZSAg IElDUF9UQzFfSE9UUExVRwkJKDEgPDwgMjQpCj4gKyNkZWZpbmUgICBJQ1BfR01CVVMJCQkoMSA8 PCAyMykKPiArI2RlZmluZSAgIElDUF9ERElCX0hPVFBMVUcJCSgxIDw8IDE3KQo+ICsjZGVmaW5l ICAgSUNQX0RESUFfSE9UUExVRwkJKDEgPDwgMTYpCgpzbyB0aGVzZSB3b3VsZCBiZWNvbWUgU0RF X1RDNF9IT1RQTFVHX0lDUCBhbmQgc28gb24uCgo+ICsKPiArI2RlZmluZSBJQ1BfU0RFX0RESV9N QVNLCQkoSUNQX0RESUJfSE9UUExVRyB8CVwKPiArCQkJCQkgSUNQX0RESUFfSE9UUExVRykKPiAr Cj4gKyNkZWZpbmUgSUNQX1NERV9UQ19NQVNLCQkJKElDUF9UQzRfSE9UUExVRyB8CVwKPiArCQkJ CQkgSUNQX1RDM19IT1RQTFVHIHwJXAo+ICsJCQkJCSBJQ1BfVEMyX0hPVFBMVUcgfAlcCj4gKwkJ CQkJIElDUF9UQzFfSE9UUExVRykKPiArCj4gKyNkZWZpbmUgU0hPVFBMVUdfQ1RMX0RESQkJCV9N TUlPKDB4YzQwMzApCS8qIFNIT1RQTFVHX0NUTCAqLwoKVGhpcyBhbHNvIHNlZW1zIHRvIHJldXNl IHdoYXQgd2UgaGF2ZSBkZWZpbmVkIGFzIFBDSF9QT1JUX0hPVFBMVUcgd2l0aCBhCmNvbW1lbnQg dG8gU0hPVFBMVUdfQ1RMIHRoZXJlLCBhbHRob3VnaCBoZXJlIEkgdGVuZCB0byBiZSBpbiBmYXZv ciBvZgp1c2luZyB0aGUgY3VycmVudCByZWFsIG5hbWUgb2YgdGhlIHJlZ2lzdGVyIChTSE9UUExV R19DVEwpLgoKVGhlIHJlc3QgbG9va3MgZ29vZCB0byBtZS4KCkx1Y2FzIERlIE1hcmNoaQoKPiAr I2RlZmluZSAgIElDUF9ERElCX0hQRF9FTkFCTEUJCQkoMSA8PCA3KQo+ICsjZGVmaW5lICAgSUNQ X0RESUJfSFBEX1NUQVRVU19NQVNLCQkoMyA8PCA0KQo+ICsjZGVmaW5lICAgSUNQX0RESUJfSFBE X05PX0RFVEVDVAkJKDAgPDwgNCkKPiArI2RlZmluZSAgIElDUF9ERElCX0hQRF9TSE9SVF9ERVRF Q1QJCSgxIDw8IDQpCj4gKyNkZWZpbmUgICBJQ1BfRERJQl9IUERfTE9OR19ERVRFQ1QJCSgyIDw8 IDQpCj4gKyNkZWZpbmUgICBJQ1BfRERJQl9IUERfU0hPUlRfTE9OR19ERVRFQ1QJKDMgPDwgNCkK PiArI2RlZmluZSAgIElDUF9ERElBX0hQRF9FTkFCTEUJCQkoMSA8PCAzKQo+ICsjZGVmaW5lICAg SUNQX0RESUFfSFBEX1NUQVRVU19NQVNLCQkoMyA8PCAwKQo+ICsjZGVmaW5lICAgSUNQX0RESUFf SFBEX05PX0RFVEVDVAkJKDAgPDwgMCkKPiArI2RlZmluZSAgIElDUF9ERElBX0hQRF9TSE9SVF9E RVRFQ1QJCSgxIDw8IDApCj4gKyNkZWZpbmUgICBJQ1BfRERJQV9IUERfTE9OR19ERVRFQ1QJCSgy IDw8IDApCj4gKyNkZWZpbmUgICBJQ1BfRERJQV9IUERfU0hPUlRfTE9OR19ERVRFQ1QJKDMgPDwg MCkKPiArCj4gKyNkZWZpbmUgU0hPVFBMVUdfQ1RMX1RDCQkJCV9NTUlPKDB4YzQwMzQpCj4gKyNk ZWZpbmUgICBJQ1BfVENfSFBEX0VOQUJMRSh0Y19wb3J0KQkJKDggPDwgKHRjX3BvcnQpICogNCkK PiArI2RlZmluZSAgIElDUF9UQ19IUERfTE9OR19ERVRFQ1QodGNfcG9ydCkJKDIgPDwgKHRjX3Bv cnQpICogNCkKPiArI2RlZmluZSAgIElDUF9UQ19IUERfU0hPUlRfREVURUNUKHRjX3BvcnQpCSgx IDw8ICh0Y19wb3J0KSAqIDQpCj4gKwo+ICAjZGVmaW5lIFBDSF9HUElPQSAgICAgICAgICAgICAg IF9NTUlPKDB4YzUwMTApCj4gICNkZWZpbmUgUENIX0dQSU9CICAgICAgICAgICAgICAgX01NSU8o MHhjNTAxNCkKPiAgI2RlZmluZSBQQ0hfR1BJT0MgICAgICAgICAgICAgICBfTU1JTygweGM1MDE4 KQo+IC0tIAo+IDIuMTQuMwo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK