From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 04/11] drm/i915: Support for GuC interrupts Date: Tue, 28 Jun 2016 11:03:28 +0100 Message-ID: <57724B70.4010303@linux.intel.com> References: <1467029818-3417-1-git-send-email-akash.goel@intel.com> <1467029818-3417-5-git-send-email-akash.goel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 1EF6C6E544 for ; Tue, 28 Jun 2016 10:03:30 +0000 (UTC) In-Reply-To: <1467029818-3417-5-git-send-email-akash.goel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: akash.goel@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI3LzA2LzE2IDEzOjE2LCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBT YWdhciBBcnVuIEthbWJsZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgo+Cj4gVGhlcmUgYXJl IGNlcnRhaW4gdHlwZXMgb2YgaW50ZXJydXB0cyB3aGljaCBIb3N0IGNhbiByZWNpZXZlIGZyb20g R3VDLgo+IEd1QyB1a2VybmVsIHNlbmRzIGFuIGludGVycnVwdCB0byBIb3N0IGZvciBjZXJ0YWlu IGV2ZW50cywgbGlrZSBmb3IKPiBleGFtcGxlIHJldHJpZXZlL2NvbnN1bWUgdGhlIGxvZ3MgZ2Vu ZXJhdGVkIGJ5IHVrZXJuZWwuCj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gcmVjZWl2ZSBp bnRlcnJ1cHRzIGZyb20gR3VDIGJ1dCBjdXJyZW50bHkKPiBlbmFibGVzICYgcGFydGlhbGx5IGhh bmRsZXMgb25seSB0aGUgaW50ZXJydXB0IHNlbnQgYnkgR3VDIHVrZXJuZWwuCj4gRnV0dXJlIHBh dGNoZXMgd2lsbCBhZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcgb3RoZXIgaW50ZXJydXB0IHR5cGVz Lgo+Cj4gdjI6IFVzZSBjb21tb24gbG93IGxldmVsIHJvdXRpbmVzIGZvciBQTSBJRVIvSUlSIHBy b2dyYW1taW5nIChDaHJpcykKPiAgICAgIFJlbmFtZSBpbnRlcnJ1cHQgZnVuY3Rpb25zIHRvIGdl bjlfeHh4IGZyb20gZ2VuOF94eHggKENocmlzKQo+ICAgICAgUmVwbGFjZSBkaXNhYmxpbmcgb2Yg d2FrZSByZWYgYXNzZXJ0cyB3aXRoIHJwbSBnZXQvcHV0IChDaHJpcykKPgo+IFNpZ25lZC1vZmYt Ynk6IFNhZ2FyIEFydW4gS2FtYmxlIDxzYWdhci5hLmthbWJsZUBpbnRlbC5jb20+Cj4gU2lnbmVk LW9mZi1ieTogQWthc2ggR29lbCA8YWthc2guZ29lbEBpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgMSArCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAgNSArKwo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgIHwgOTUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAg ICAgfCAxMSArKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAg ICAgfCAgMyArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAg fCAgNSArKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jICAgIHwg IDQgKysKPiAgIDcgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA4NWE3MTAzLi4yMGM3MDFjIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTE4MDgsNiArMTgwOCw3IEBAIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlIHsKPiAgIAl1MzIgcG1faXJxX21hc2s7Cj4gICAJdTMyIHBtX2ll cl9tYXNrOwo+ICAgCXUzMiBwbV9ycHNfZXZlbnRzOwo+ICsJdTMyIGd1Y19ldmVudHM7Cj4gICAJ dTMyIHBpcGVzdGF0X2lycV9tYXNrW0k5MTVfTUFYX1BJUEVTXTsKPgo+ICAgCXN0cnVjdCBpOTE1 X2hvdHBsdWcgaG90cGx1ZzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jCj4gaW5kZXggMjhhODEwZi4uODEwNWRkZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAtMTAzOCw2ICsxMDM4LDggQEAgaW50IGlu dGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJaWYgKGd1Yy0+Z3Vj X2Z3Lmd1Y19md19sb2FkX3N0YXR1cyAhPSBHVUNfRklSTVdBUkVfU1VDQ0VTUykKPiAgIAkJcmV0 dXJuIDA7Cj4KPiArCWdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gKwo+ ICAgCWN0eCA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKPgo+ICAgCWRhdGFbMF0gPSBIT1NU MkdVQ19BQ1RJT05fRU5URVJfU19TVEFURTsKPiBAQCAtMTA2NCw2ICsxMDY2LDkgQEAgaW50IGlu dGVsX2d1Y19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlpZiAoZ3VjLT5ndWNf ZncuZ3VjX2Z3X2xvYWRfc3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKQo+ICAgCQlyZXR1 cm4gMDsKPgo+ICsJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA+PSAwKQo+ICsJCWdlbjlfZW5hYmxl X2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKPiArCj4gICAJY3R4ID0gZGV2X3ByaXYtPmtlcm5l bF9jb250ZXh0Owo+Cj4gICAJZGF0YVswXSA9IEhPU1QyR1VDX0FDVElPTl9FWElUX1NfU1RBVEU7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5kZXggNzMxNmFiNC4uMzA0M2U0NSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0xNzAsNiArMTcwLDcgQEAgc3RhdGljIHZvaWQg Z2VuNV9hc3NlcnRfaWlyX2lzX3plcm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAgfSB3aGlsZSAoMCkKPgo+ICAgc3RhdGljIHZvaWQgZ2VuNl9ycHNfaXJxX2hhbmRsZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcG1faWlyKTsKPiArc3RhdGlj IHZvaWQgZ2VuOV9ndWNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgcG1faWlyKTsKPgo+ICAgLyogRm9yIGRpc3BsYXkgaG90cGx1ZyBpbnRlcnJ1cHQg Ki8KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZAo+IEBAIC00MjIsNiArNDIzLDQyIEBAIHZvaWQgZ2Vu Nl9kaXNhYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgIAlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRldi0+aXJxKTsKPiAgIH0KPgo+ICt2 b2lkIGdlbjlfcmVzZXRfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICt7Cj4gKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsJ Z2VuNl9yZXNldF9wbV9pbnRlcnJ1cHRzKGRldl9wcml2LCBkZXZfcHJpdi0+Z3VjX2V2ZW50cyk7 Cj4gKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gK30KPiArCj4gK3Zv aWQgZ2VuOV9lbmFibGVfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICt7Cj4gKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsJ aWYgKCFkZXZfcHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCkgewo+ICsJCVdBUk5fT04oSTkx NV9SRUFEKGdlbjZfcG1faWlyKGRldl9wcml2KSkgJgo+ICsJCQkJCWRldl9wcml2LT5ndWNfZXZl bnRzKTsKPiArCQlkZXZfcHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCA9IHRydWU7Cj4gKwkJ Z2VuNl9lbmFibGVfcG1faW50ZXJydXB0cyhkZXZfcHJpdiwgZGV2X3ByaXYtPmd1Y19ldmVudHMp Owo+ICsJfQo+ICsJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICt9Cj4g Kwo+ICt2b2lkIGdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9j ayk7Cj4gKwlkZXZfcHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCA9IGZhbHNlOwo+ICsJc3Bp bl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsKPiArCWNhbmNlbF93b3JrX3N5 bmMoJmRldl9wcml2LT5ndWMuZXZlbnRzX3dvcmspOwo+ICsKPiArCXNwaW5fbG9ja19pcnEoJmRl dl9wcml2LT5pcnFfbG9jayk7Cj4gKwo+ICsJZ2VuNl9kaXNhYmxlX3BtX2ludGVycnVwdHMoZGV2 X3ByaXYsIGRldl9wcml2LT5ndWNfZXZlbnRzKTsKPiArCj4gKwlzcGluX3VubG9ja19pcnEoJmRl dl9wcml2LT5pcnFfbG9jayk7Cj4gKwo+ICsJc3luY2hyb25pemVfaXJxKGRldl9wcml2LT5kZXYt PmlycSk7Cj4gK30KPiArCj4gICAvKioKPiAgICAqIGJkd191cGRhdGVfcG9ydF9pcnEgLSB1cGRh dGUgREUgcG9ydCBpbnRlcnJ1cHQKPiAgICAqIEBkZXZfcHJpdjogZHJpdmVyIHByaXZhdGUKPiBA QCAtMTE5Niw2ICsxMjMzLDMzIEBAIG91dDoKPiAgIAlFTkFCTEVfUlBNX1dBS0VSRUZfQVNTRVJU UyhkZXZfcHJpdik7Cj4gICB9Cj4KPiArc3RhdGljIHZvaWQgZ2VuOV9ndWMyaG9zdF9ldmVudHNf d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9Cj4gKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlLCBndWMuZXZlbnRzX3dvcmspOwo+ICsKPiArCXNwaW5fbG9ja19pcnEoJmRldl9w cml2LT5pcnFfbG9jayk7Cj4gKwkvKiBTcGVlZCB1cCB3b3JrIGNhbmNlbGF0aW9uIGR1cmluZyBk aXNhYmxpbmcgZ3VjIGludGVycnVwdHMuICovCj4gKwlpZiAoIWRldl9wcml2LT5ndWMuaW50ZXJy dXB0c19lbmFibGVkKSB7Cj4gKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2sp Owo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwkvKiBUaG91Z2ggdGhpcyB3b3JrIGl0ZW0gZ2V0 cyBzeW5jZWQgZHVyaW5nIHJwbSBzdXNwZW5kLCBidXQgc3RpbGwgbmVlZAo+ICsJICogYSBycG0g Z2V0L3B1dCB0byBhdm9pZCB0aGUgd2FybmluZywgYXMgaXQgY291bGQgZ2V0IGV4ZWN1dGVkIGlu IGEKPiArCSAqIHdpbmRvdywgd2hlcmUgcnBtIHJlZiBjb3VudCBoYXMgZHJvcHBlZCB0byB6ZXJv IGJ1dCBycG0gc3VzcGVuZCBoYXMKPiArCSAqIG5vdCBraWNrZWQgaW4uIEdlbmVyYWxseSBkZXZp Y2UgaXMgZXhwZWN0ZWQgdG8gYmUgYWN0aXZlIG9ubHkgYXQgdGhpcwo+ICsJICogdGltZSBzbyBn ZXQvcHV0IHNob3VsZCBiZSByZWFsbHkgcXVpY2suCj4gKwkgKi8KPiArCWludGVsX3J1bnRpbWVf cG1fZ2V0KGRldl9wcml2KTsKPiArCj4gKwlnZW42X2VuYWJsZV9wbV9pcnEoZGV2X3ByaXYsIEdF TjlfR1VDX1RPX0hPU1RfSU5UX0VWRU5UKTsKPiArCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYt PmlycV9sb2NrKTsKPiArCj4gKwkvKiBUT0RPOiBIYW5kbGUgdGhlIGV2ZW50cyBmb3Igd2hpY2gg R3VDIGludGVycnVwdGVkIGhvc3QgKi8KPiArCj4gKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZf cHJpdik7Cj4gK30KPgo+ICAgLyoqCj4gICAgKiBpdnlicmlkZ2VfcGFyaXR5X3dvcmsgLSBXb3Jr cXVldWUgY2FsbGVkIHdoZW4gYSBwYXJpdHkgZXJyb3IgaW50ZXJydXB0Cj4gQEAgLTEzNzEsMTEg KzE0MzUsMTMgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjhfZ3RfaXJxX2FjayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCQlEUk1fRVJST1IoIlRoZSBtYXN0ZXIgY29u dHJvbCBpbnRlcnJ1cHQgbGllZCAoR1QzKSFcbiIpOwo+ICAgCX0KPgo+IC0JaWYgKG1hc3Rlcl9j dGwgJiBHRU44X0dUX1BNX0lSUSkgewo+ICsJaWYgKG1hc3Rlcl9jdGwgJiAoR0VOOF9HVF9QTV9J UlEgfCBHRU44X0dUX0dVQ19JUlEpKSB7Cj4gICAJCWd0X2lpclsyXSA9IEk5MTVfUkVBRF9GVyhH RU44X0dUX0lJUigyKSk7Cj4gLQkJaWYgKGd0X2lpclsyXSAmIGRldl9wcml2LT5wbV9ycHNfZXZl bnRzKSB7Cj4gKwkJaWYgKGd0X2lpclsyXSAmIChkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyB8Cj4g KwkJCQkgZGV2X3ByaXYtPmd1Y19ldmVudHMpKSB7Cj4gICAJCQlJOTE1X1dSSVRFX0ZXKEdFTjhf R1RfSUlSKDIpLAo+IC0JCQkJICAgICAgZ3RfaWlyWzJdICYgZGV2X3ByaXYtPnBtX3Jwc19ldmVu dHMpOwo+ICsJCQkJICAgICAgZ3RfaWlyWzJdICYgKGRldl9wcml2LT5wbV9ycHNfZXZlbnRzIHwK PiArCQkJCQkJICAgZGV2X3ByaXYtPmd1Y19ldmVudHMpKTsKPiAgIAkJCXJldCA9IElSUV9IQU5E TEVEOwo+ICAgCQl9IGVsc2UKPiAgIAkJCURSTV9FUlJPUigiVGhlIG1hc3RlciBjb250cm9sIGlu dGVycnVwdCBsaWVkIChQTSkhXG4iKTsKPiBAQCAtMTQwNyw2ICsxNDczLDkgQEAgc3RhdGljIHZv aWQgZ2VuOF9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4KPiAgIAlpZiAoZ3RfaWlyWzJdICYgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpCj4gICAJCWdl bjZfcnBzX2lycV9oYW5kbGVyKGRldl9wcml2LCBndF9paXJbMl0pOwo+ICsKPiArCWlmIChndF9p aXJbMl0gJiBkZXZfcHJpdi0+Z3VjX2V2ZW50cykKPiArCQlnZW45X2d1Y19pcnFfaGFuZGxlcihk ZXZfcHJpdiwgZ3RfaWlyWzJdKTsKPiAgIH0KPgo+ICAgc3RhdGljIGJvb2wgYnh0X3BvcnRfaG90 cGx1Z19sb25nX2RldGVjdChlbnVtIHBvcnQgcG9ydCwgdTMyIHZhbCkKPiBAQCAtMTY1Myw2ICsx NzIyLDIwIEBAIHN0YXRpYyB2b2lkIGdlbjZfcnBzX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBtX2lpcikKPiAgIAl9Cj4gICB9Cj4KPiArc3RhdGlj IHZvaWQgZ2VuOV9ndWNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgZ3RfaWlyKQo+ICt7Cj4gKwlpZiAoZ3RfaWlyICYgR0VOOV9HVUNfVE9fSE9TVF9J TlRfRVZFTlQpIHsKPiArCQlzcGluX2xvY2soJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gKwkJaWYg KGRldl9wcml2LT5ndWMuaW50ZXJydXB0c19lbmFibGVkKSB7CgpTbyBpdCBpcyBleHBlY3RlZCBp bnRlcnJ1cHRzIHdpbGwgYWx3YXlzIGJlIGVuYWJsZWQgd2hlbiAKaTkxNS5ndWNfbG9nX2xldmVs IGlzIHNldCwgY29ycmVjdD8KCkFsc28gZG8geW91IG5lZWQgdG8gY2hlY2sgYWdhaW5zdCBkZXZf cHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCBhdCAKYWxsIHRoZW4/IE9yIGZyb20gYW4gb3Bw b3NpdGUgYW5nbGUsIHdvdWxkIHlvdSBpbnN0ZWFkIG5lZWQgdG8gbG9nIHRoZSAKZmFjdCB1bmV4 cGVjdGVkIGludGVycnVwdCB3YXMgcmVjZWl2ZWQgaGVyZT8KCj4gKwkJCS8qIFByb2Nlc3MgYWxs IHRoZSBHdUMgdG8gSG9zdCBldmVudHMgaW4gYm90dG9tIGhhbGYgKi8KPiArCQkJZ2VuNl9kaXNh YmxlX3BtX2lycShkZXZfcHJpdiwKPiArCQkJCUdFTjlfR1VDX1RPX0hPU1RfSU5UX0VWRU5UKTsK CldoeSBpdCBpcyBpbXBvcnRhbnQgdG8gZGlzYWJsZSB0aGUgaW50ZXJydXB0IGhlcmU/IE5vdCBm b3IgdGhlIHF1ZXVlIAp3b3JrIEkgdGhpbmsuCgpBbHNvLCBpcyBpdCBzYWZlIHdpdGggcmVnYXJk cyB0byBwb3RlbnRpYWxseSBsb3NpbmcgdGhlIGludGVycnVwdD8KCj4gKwkJCXF1ZXVlX3dvcmso ZGV2X3ByaXYtPndxLCAmZGV2X3ByaXYtPmd1Yy5ldmVudHNfd29yayk7CgpCZWNhdXNlIGRldl9w cml2LT53cSBpcyBhIG9uZSBhIHRpbWUgaW4gb3JkZXIgd3Egc28gaWYgc29tZXRoaW5nIGVsc2Ug aXMgCnJ1bm5pbmcgb24gaXQgYW5kIHRha2luZyB0aW1lLCBjYW4gdGhhdCBhbHNvIGJlIGEgY2F1 c2Ugb2YgZHJvcHBpbmcgYW4gCmludGVycnVwdCBvciBiZWluZyBsYXRlIHdpdGggc2VuZGluZyB0 aGUgZmx1c2ggc2lnbmFsIHRvIHRoZSBndWMgYW5kIHNvIApsb3Npbmcgc29tZSBsb2dzPwoKPiAr CQl9Cj4gKwkJc3Bpbl91bmxvY2soJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gKwl9Cj4gK30KPiAr Cj4gICBzdGF0aWMgYm9vbCBpbnRlbF9waXBlX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQkJCSAgICAgZW51bSBwaXBlIHBpcGUpCj4gICB7Cj4g QEAgLTM4MDksNyArMzg5Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlHRU44X0lSUV9JTklUX05E WChHVCwgMSwgfmd0X2ludGVycnVwdHNbMV0sIGd0X2ludGVycnVwdHNbMV0pOwo+ICAgCS8qCj4g ICAJICogUlBTIGludGVycnVwdHMgd2lsbCBnZXQgZW5hYmxlZC9kaXNhYmxlZCBvbiBkZW1hbmQg d2hlbiBSUFMgaXRzZWxmCj4gLQkgKiBpcyBlbmFibGVkL2Rpc2FibGVkLgo+ICsJICogaXMgZW5h YmxlZC9kaXNhYmxlZC4gU2FtZSB3aWwgYmUgdGhlIGNhc2UgZm9yIEd1QyBpbnRlcnJ1cHRzLgo+ ICAgCSAqLwo+ICAgCUdFTjhfSVJRX0lOSVRfTkRYKEdULCAyLCBkZXZfcHJpdi0+cG1faXJxX21h c2ssIDApOwo+ICAgCUdFTjhfSVJRX0lOSVRfTkRYKEdULCAzLCB+Z3RfaW50ZXJydXB0c1szXSwg Z3RfaW50ZXJydXB0c1szXSk7Cj4gQEAgLTQ1OTQsNiArNDY3NywxMCBAQCB2b2lkIGludGVsX2ly cV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPgo+ICAgCUlOSVRfV09S SygmZGV2X3ByaXYtPnJwcy53b3JrLCBnZW42X3BtX3Jwc193b3JrKTsKPiAgIAlJTklUX1dPUkso JmRldl9wcml2LT5sM19wYXJpdHkuZXJyb3Jfd29yaywgaXZ5YnJpZGdlX3Bhcml0eV93b3JrKTsK PiArCUlOSVRfV09SSygmZGV2X3ByaXYtPmd1Yy5ldmVudHNfd29yaywgZ2VuOV9ndWMyaG9zdF9l dmVudHNfd29yayk7Cj4gKwo+ICsJaWYgKEhBU19HVUNfVUNPREUoZGV2KSkKPiArCQlkZXZfcHJp di0+Z3VjX2V2ZW50cyA9IEdFTjlfR1VDX1RPX0hPU1RfSU5UX0VWRU5UOwo+Cj4gICAJLyogTGV0 J3MgdHJhY2sgdGhlIGVuYWJsZWQgcnBzIGV2ZW50cyAqLwo+ICAgCWlmIChJU19WQUxMRVlWSUVX KGRldl9wcml2KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCBjNmJmYmY4Li40NDQx OTE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTU5NjMsNiArNTk2Myw3IEBA IGVudW0gewo+ICAgI2RlZmluZSAgR0VOOF9ERV9QSVBFX0FfSVJRCQkoMTw8MTYpCj4gICAjZGVm aW5lICBHRU44X0RFX1BJUEVfSVJRKHBpcGUpCQkoMTw8KDE2KyhwaXBlKSkpCj4gICAjZGVmaW5l ICBHRU44X0dUX1ZFQ1NfSVJRCQkoMTw8NikKPiArI2RlZmluZSAgR0VOOF9HVF9HVUNfSVJRCQko MTw8NSkKPiAgICNkZWZpbmUgIEdFTjhfR1RfUE1fSVJRCQkJKDE8PDQpCj4gICAjZGVmaW5lICBH RU44X0dUX1ZDUzJfSVJRCQkoMTw8MykKPiAgICNkZWZpbmUgIEdFTjhfR1RfVkNTMV9JUlEJCSgx PDwyKQo+IEBAIC01OTc0LDYgKzU5NzUsMTYgQEAgZW51bSB7Cj4gICAjZGVmaW5lIEdFTjhfR1Rf SUlSKHdoaWNoKSBfTU1JTygweDQ0MzA4ICsgKDB4MTAgKiAod2hpY2gpKSkKPiAgICNkZWZpbmUg R0VOOF9HVF9JRVIod2hpY2gpIF9NTUlPKDB4NDQzMGMgKyAoMHgxMCAqICh3aGljaCkpKQo+Cj4g KyNkZWZpbmUgR0VOOV9HVUNfVE9fSE9TVF9JTlRfRVZFTlQJKDE8PDMxKQo+ICsjZGVmaW5lIEdF TjlfR1VDX0VYRUNfRVJST1JfRVZFTlQJKDE8PDMwKQo+ICsjZGVmaW5lIEdFTjlfR1VDX0RJU1BM QVlfRVZFTlQJCSgxPDwyOSkKPiArI2RlZmluZSBHRU45X0dVQ19TRU1BX1NJR05BTF9FVkVOVAko MTw8MjgpCj4gKyNkZWZpbmUgR0VOOV9HVUNfSU9NTVVfTVNHX0VWRU5UCSgxPDwyNykKPiArI2Rl ZmluZSBHRU45X0dVQ19EQl9SSU5HX0VWRU5UCQkoMTw8MjYpCj4gKyNkZWZpbmUgR0VOOV9HVUNf RE1BX0RPTkVfRVZFTlQJCSgxPDwyNSkKPiArI2RlZmluZSBHRU45X0dVQ19GQVRBTF9FUlJPUl9F VkVOVAkoMTw8MjQpCj4gKyNkZWZpbmUgR0VOOV9HVUNfTk9USUZJQ0FUSU9OX0VWRU5UCSgxPDwy MykKPiArCj4gICAjZGVmaW5lIEdFTjhfUkNTX0lSUV9TSElGVCAwCj4gICAjZGVmaW5lIEdFTjhf QkNTX0lSUV9TSElGVCAxNgo+ICAgI2RlZmluZSBHRU44X1ZDUzFfSVJRX1NISUZUIDAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDJhMDEzZmMuLjY5NjZmZmUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xMDgzLDYgKzEwODMsOSBAQCB2b2lkIGdlbjhfaXJx X3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAgCQkJCSAgICAgdW5zaWduZWQgaW50IHBpcGVfbWFzayk7Cj4gICB2b2lkIGdlbjhfaXJx X3Bvd2VyX3dlbGxfcHJlX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAgCQkJCSAgICAgdW5zaWduZWQgaW50IHBpcGVfbWFzayk7Cj4gK3ZvaWQgZ2VuOV9yZXNl dF9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2 b2lkIGdlbjlfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gK3ZvaWQgZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4KPiAgIC8qIGludGVsX2NydC5jICovCj4gICB2b2lk IGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Yy5oCj4gaW5kZXggM2UzZTc0My4uYWU3ODdlMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Yy5oCj4gQEAgLTEyNiw2ICsxMjYsMTEgQEAgc3RydWN0IGludGVsX2d1YyB7Cj4gICAJ c3RydWN0IGludGVsX2d1Y19mdyBndWNfZnc7Cj4gICAJdWludDMyX3QgbG9nX2ZsYWdzOwo+ICAg CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpsb2dfb2JqOwo+ICsJLyoKPiArCSAqIHdvcmss IGludGVycnVwdHNfZW5hYmxlZCBhcmUgcHJvdGVjdGVkIGJ5IGRldl9wcml2LT5pcnFfbG9jawo+ ICsJICovCj4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZXZlbnRzX3dvcms7Cj4gKwlib29sIGludGVy cnVwdHNfZW5hYmxlZDsKPgo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICphZHNfb2Jq Owo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+IGluZGV4IGRiM2M4 OTcuLmZjZjM2YTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2xvYWRlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5j Cj4gQEAgLTQ0OCw2ICs0NDgsNyBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gICAJfQo+Cj4gICAJZGlyZWN0X2ludGVycnVwdHNfdG9faG9zdChkZXZfcHJp dik7Cj4gKwlnZW45X3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKPgo+ICAgCWd1Y19m dy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4KPiBAQCAtNDk0 LDYgKzQ5NSw5IEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgIAkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVz KSk7Cj4KPiAgIAlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pIHsKPiArCQlpZiAoaTkx NS5ndWNfbG9nX2xldmVsID49IDApCj4gKwkJCWdlbjlfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzKGRl dl9wcml2KTsKPiArCj4gICAJCWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKGRldl9w cml2KTsKPiAgIAkJaWYgKGVycikKPiAgIAkJCWdvdG8gZmFpbDsKPgoKUmVnYXJkcywKClR2cnRr bwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==