From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 05/17] drm/i915: Support for GuC interrupts Date: Mon, 11 Jul 2016 11:30:05 +0100 Message-ID: <5783752D.2020807@linux.intel.com> References: <1468158084-22028-1-git-send-email-akash.goel@intel.com> <1468158084-22028-6-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 41A0E89E1A for ; Mon, 11 Jul 2016 10:30:08 +0000 (UTC) In-Reply-To: <1468158084-22028-6-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 Ck9uIDEwLzA3LzE2IDE0OjQxLCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBT YWdhciBBcnVuIEthbWJsZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgo+Cj4gVGhlcmUgYXJl IGNlcnRhaW4gdHlwZXMgb2YgaW50ZXJydXB0cyB3aGljaCBIb3N0IGNhbiByZWNpZXZlIGZyb20g R3VDLgo+IEd1QyB1a2VybmVsIHNlbmRzIGFuIGludGVycnVwdCB0byBIb3N0IGZvciBjZXJ0YWlu IGV2ZW50cywgbGlrZSBmb3IKPiBleGFtcGxlIHJldHJpZXZlL2NvbnN1bWUgdGhlIGxvZ3MgZ2Vu ZXJhdGVkIGJ5IHVrZXJuZWwuCj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gcmVjZWl2ZSBp bnRlcnJ1cHRzIGZyb20gR3VDIGJ1dCBjdXJyZW50bHkKPiBlbmFibGVzICYgcGFydGlhbGx5IGhh bmRsZXMgb25seSB0aGUgaW50ZXJydXB0IHNlbnQgYnkgR3VDIHVrZXJuZWwuCj4gRnV0dXJlIHBh dGNoZXMgd2lsbCBhZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcgb3RoZXIgaW50ZXJydXB0IHR5cGVz Lgo+Cj4gdjI6Cj4gLSBVc2UgY29tbW9uIGxvdyBsZXZlbCByb3V0aW5lcyBmb3IgUE0gSUVSL0lJ UiBwcm9ncmFtbWluZyAoQ2hyaXMpCj4gLSBSZW5hbWUgaW50ZXJydXB0IGZ1bmN0aW9ucyB0byBn ZW45X3h4eCBmcm9tIGdlbjhfeHh4IChDaHJpcykKPiAtIFJlcGxhY2UgZGlzYWJsaW5nIG9mIHdh a2UgcmVmIGFzc2VydHMgd2l0aCBycG0gZ2V0L3B1dCAoQ2hyaXMpCj4KPiB2MzoKPiAtIFVwZGF0 ZSBjb21tZW50cyBmb3IgbW9yZSBjbGFyaXR5LiAoVHZydGtvKQo+IC0gUmVtb3ZlIHRoZSBtYXNr aW5nIG9mIEd1QyBpbnRlcnJ1cHQsIHdoaWNoIHdhcyBrZXB0IG1hc2tlZCB0aWxsIHRoZQo+ICAg IHN0YXJ0IG9mIGJvdHRvbSBoYWxmLCBpdHMgbm90IHJlYWxseSBuZWVkZWQgYXMgdGhlcmUgaXMg b25seSBhCj4gICAgc2luZ2xlIGluc3RhbmNlIG9mIHdvcmsgaXRlbSAmIHdxIGlzIG9yZGVyZWQu IChUdnJ0a28pCj4KPiB2NDoKPiAtIFJlYmFzZS4KPiAtIFJlbmFtZSBndWNfZXZlbnRzIHRvIHBt X2d1Y19ldmVudHMgc28gYXMgdG8gYmUgaW5kaWNhdGl2ZSBvZiB0aGUKPiAgICByZWdpc3Rlci9j b250cm9sIGJsb2NrIGl0IGlzIGFzc29jaWF0ZWQgd2l0aC4gKENocmlzKQo+IC0gQWRkIGhhbmRs aW5nIGZvciBiYWNrIHRvIGJhY2sgbG9nIGJ1ZmZlciBmbHVzaCBpbnRlcnJ1cHRzLgo+Cj4gU2ln bmVkLW9mZi1ieTogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEua2FtYmxlQGludGVsLmNvbT4K PiBTaWduZWQtb2ZmLWJ5OiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICAxICsKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICA1ICsrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAgfCA5OCArKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg ICAgICAgICAgICB8IDExICsrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICAgICAgICB8ICAzICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAg ICAgICAgICB8ICA0ICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy LmMgICAgfCAgNCArKwo+ICAgNyBmaWxlcyBjaGFuZ2VkLCAxMjIgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGMzYTU3OWYuLjZl MmRkZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTc5NCw2ICsxNzk0LDcg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAgCXUzMiBwbV9pbXI7Cj4gICAJdTMyIHBt X2llcjsKPiAgIAl1MzIgcG1fcnBzX2V2ZW50czsKPiArCXUzMiBwbV9ndWNfZXZlbnRzOwo+ICAg CXUzMiBwaXBlc3RhdF9pcnFfbWFza1tJOTE1X01BWF9QSVBFU107Cj4KPiAgIAlzdHJ1Y3QgaTkx NV9ob3RwbHVnIGhvdHBsdWc7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYwo+IGluZGV4IDBmYjAwYWIuLjBiYWMxNzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTEwNDQsNiArMTA0NCw4IEBAIGludCBp bnRlbF9ndWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWlmIChndWMtPmd1 Y19mdy5ndWNfZndfbG9hZF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCj4gICAJCXJl dHVybiAwOwo+Cj4gKwlnZW45X2Rpc2FibGVfZ3VjX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+ICsK PiAgIAljdHggPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4KPiAgIAlkYXRhWzBdID0gSE9T VDJHVUNfQUNUSU9OX0VOVEVSX1NfU1RBVEU7Cj4gQEAgLTEwNzAsNiArMTA3Miw5IEBAIGludCBp bnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJaWYgKGd1Yy0+Z3Vj X2Z3Lmd1Y19md19sb2FkX3N0YXR1cyAhPSBHVUNfRklSTVdBUkVfU1VDQ0VTUykKPiAgIAkJcmV0 dXJuIDA7Cj4KPiArCWlmIChpOTE1Lmd1Y19sb2dfbGV2ZWwgPj0gMCkKPiArCQlnZW45X2VuYWJs ZV9ndWNfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gKwo+ICAgCWN0eCA9IGRldl9wcml2LT5rZXJu ZWxfY29udGV4dDsKPgo+ICAgCWRhdGFbMF0gPSBIT1NUMkdVQ19BQ1RJT05fRVhJVF9TX1NUQVRF Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDI0YmJhZjcuLmZkNzNjOTQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMTcwLDYgKzE3MCw3IEBAIHN0YXRpYyB2b2lk IGdlbjVfYXNzZXJ0X2lpcl9pc196ZXJvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiAgIH0gd2hpbGUgKDApCj4KPiAgIHN0YXRpYyB2b2lkIGdlbjZfcnBzX2lycV9oYW5kbGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBtX2lpcik7Cj4gK3N0YXRp YyB2b2lkIGdlbjlfZ3VjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTMyIHBtX2lpcik7Cj4KPiAgIC8qIEZvciBkaXNwbGF5IGhvdHBsdWcgaW50ZXJydXB0 ICovCj4gICBzdGF0aWMgaW5saW5lIHZvaWQKPiBAQCAtNDExLDYgKzQxMiwzOSBAQCB2b2lkIGdl bjZfZGlzYWJsZV9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gICAJZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gICB9Cj4KPiAr dm9pZCBnZW45X3Jlc2V0X2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiArewo+ICsJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAr CWdlbjZfcmVzZXRfcG1faWlyKGRldl9wcml2LCBkZXZfcHJpdi0+cG1fZ3VjX2V2ZW50cyk7Cj4g KwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gK30KPiArCj4gK3ZvaWQg Z2VuOV9lbmFibGVfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICt7Cj4gKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsJaWYg KCFkZXZfcHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCkgewo+ICsJCVdBUk5fT05fT05DRShJ OTE1X1JFQUQoZ2VuNl9wbV9paXIoZGV2X3ByaXYpKSAmCj4gKwkJCQkJCWRldl9wcml2LT5wbV9n dWNfZXZlbnRzKTsKPiArCQlkZXZfcHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCA9IHRydWU7 Cj4gKwkJZ2VuNl9lbmFibGVfcG1faXJxKGRldl9wcml2LCBkZXZfcHJpdi0+cG1fZ3VjX2V2ZW50 cyk7Cj4gKwl9Cj4gKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gK30K PiArCj4gK3ZvaWQgZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9s b2NrKTsKPiArCWRldl9wcml2LT5ndWMuaW50ZXJydXB0c19lbmFibGVkID0gZmFsc2U7Cj4gKwo+ ICsJZ2VuNl9kaXNhYmxlX3BtX2lycShkZXZfcHJpdiwgZGV2X3ByaXYtPnBtX2d1Y19ldmVudHMp Owo+ICsKPiArCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiArCXN5bmNo cm9uaXplX2lycShkZXZfcHJpdi0+ZHJtLmlycSk7Cj4gKwo+ICsJY2FuY2VsX3dvcmtfc3luYygm ZGV2X3ByaXYtPmd1Yy5ldmVudHNfd29yayk7Cj4gKwlnZW45X3Jlc2V0X2d1Y19pbnRlcnJ1cHRz KGRldl9wcml2KTsKPiArfQo+ICsKPiAgIC8qKgo+ICAgICogYmR3X3VwZGF0ZV9wb3J0X2lycSAt IHVwZGF0ZSBERSBwb3J0IGludGVycnVwdAo+ICAgICogQGRldl9wcml2OiBkcml2ZXIgcHJpdmF0 ZQo+IEBAIC0xMTc0LDYgKzEyMDgsMjEgQEAgc3RhdGljIHZvaWQgZ2VuNl9wbV9ycHNfd29yayhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBz Lmh3X2xvY2spOwo+ICAgfQo+Cj4gK3N0YXRpYyB2b2lkIGdlbjlfZ3VjMmhvc3RfZXZlbnRzX3dv cmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPQo+ICsJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSwgZ3VjLmV2ZW50c193b3JrKTsKPiArCj4gKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJp di0+aXJxX2xvY2spOwo+ICsJLyogU3BlZWQgdXAgd29yayBjYW5jZWxsYXRpb24gZHVyaW5nIGRp c2FibGluZyBndWMgaW50ZXJydXB0cy4gKi8KPiArCWlmICghZGV2X3ByaXYtPmd1Yy5pbnRlcnJ1 cHRzX2VuYWJsZWQpIHsKPiArCQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7 Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xv Y2spOwo+ICsKPiArCS8qIFRPRE86IEhhbmRsZSB0aGUgZXZlbnRzIGZvciB3aGljaCBHdUMgaW50 ZXJydXB0ZWQgaG9zdCAqLwo+ICt9Cj4KPiAgIC8qKgo+ICAgICogaXZ5YnJpZGdlX3Bhcml0eV93 b3JrIC0gV29ya3F1ZXVlIGNhbGxlZCB3aGVuIGEgcGFyaXR5IGVycm9yIGludGVycnVwdAo+IEBA IC0xMzQ2LDExICsxMzk1LDEzIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW44X2d0X2lycV9hY2so c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQkJRFJNX0VSUk9SKCJUaGUg bWFzdGVyIGNvbnRyb2wgaW50ZXJydXB0IGxpZWQgKEdUMykhXG4iKTsKPiAgIAl9Cj4KPiAtCWlm IChtYXN0ZXJfY3RsICYgR0VOOF9HVF9QTV9JUlEpIHsKPiArCWlmIChtYXN0ZXJfY3RsICYgKEdF TjhfR1RfUE1fSVJRIHwgR0VOOF9HVF9HVUNfSVJRKSkgewo+ICAgCQlndF9paXJbMl0gPSBJOTE1 X1JFQURfRlcoR0VOOF9HVF9JSVIoMikpOwo+IC0JCWlmIChndF9paXJbMl0gJiBkZXZfcHJpdi0+ cG1fcnBzX2V2ZW50cykgewo+ICsJCWlmIChndF9paXJbMl0gJiAoZGV2X3ByaXYtPnBtX3Jwc19l dmVudHMgfAo+ICsJCQkJIGRldl9wcml2LT5wbV9ndWNfZXZlbnRzKSkgewo+ICAgCQkJSTkxNV9X UklURV9GVyhHRU44X0dUX0lJUigyKSwKPiAtCQkJCSAgICAgIGd0X2lpclsyXSAmIGRldl9wcml2 LT5wbV9ycHNfZXZlbnRzKTsKPiArCQkJCSAgICAgIGd0X2lpclsyXSAmIChkZXZfcHJpdi0+cG1f cnBzX2V2ZW50cyB8Cj4gKwkJCQkJCSAgIGRldl9wcml2LT5wbV9ndWNfZXZlbnRzKSk7Cj4gICAJ CQlyZXQgPSBJUlFfSEFORExFRDsKPiAgIAkJfSBlbHNlCj4gICAJCQlEUk1fRVJST1IoIlRoZSBt YXN0ZXIgY29udHJvbCBpbnRlcnJ1cHQgbGllZCAoUE0pIVxuIik7Cj4gQEAgLTEzODIsNiArMTQz Myw5IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+Cj4gICAJaWYgKGd0X2lpclsyXSAmIGRldl9wcml2LT5wbV9ycHNf ZXZlbnRzKQo+ICAgCQlnZW42X3Jwc19pcnFfaGFuZGxlcihkZXZfcHJpdiwgZ3RfaWlyWzJdKTsK PiArCj4gKwlpZiAoZ3RfaWlyWzJdICYgZGV2X3ByaXYtPnBtX2d1Y19ldmVudHMpCj4gKwkJZ2Vu OV9ndWNfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGd0X2lpclsyXSk7Cj4gICB9Cj4KPiAgIHN0YXRp YyBib29sIGJ4dF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBwb3J0IHBvcnQsIHUzMiB2 YWwpCj4gQEAgLTE2MjgsNiArMTY4MiwzOCBAQCBzdGF0aWMgdm9pZCBnZW42X3Jwc19pcnFfaGFu ZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwbV9paXIpCj4gICAJ fQo+ICAgfQo+Cj4gK3N0YXRpYyB2b2lkIGdlbjlfZ3VjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGd0X2lpcikKPiArewo+ICsJaWYgKGd0X2lpciAm IEdFTjlfR1VDX1RPX0hPU1RfSU5UX0VWRU5UKSB7Cj4gKwkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+ aXJxX2xvY2spOwo+ICsJCWlmIChkZXZfcHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCkgewo+ ICsJCQkvKiBTYW1wbGUgdGhlIGxvZyBidWZmZXIgZmx1c2ggcmVsYXRlZCBiaXRzICYgY2xlYXIg dGhlbQo+ICsJCQkgKiBvdXQgbm93IGl0c2VsZiBmcm9tIHRoZSBtZXNzYWdlIGlkZW50aXR5IHJl Z2lzdGVyIHRvCj4gKwkJCSAqIG1pbmltaXplIHRoZSBwcm9iYWJpbGl0eSBvZiBsb3NpbmcgYSBm bHVzaCBpbnRlcnJ1cHQsCj4gKwkJCSAqIHdoZW4gdGhlcmUgYXJlIGJhY2sgdG8gYmFjayBmbHVz aCBpbnRlcnJ1cHRzLgo+ICsJCQkgKiBUaGVyZSBjYW4gYmUgYSBuZXcgZmx1c2ggaW50ZXJydXB0 LCBmb3IgZGlmZmVyZW50IGxvZwo+ICsJCQkgKiBidWZmZXIgdHlwZSAobGlrZSBmb3IgSVNSKSwg d2hpbHN0IEhvc3QgaXMgaGFuZGxpbmcKPiArCQkJICogb25lIChmb3IgRFBDKS4gU2luY2Ugc2Ft ZSBiaXQgaXMgdXNlZCBpbiBtZXNzYWdlCj4gKwkJCSAqIHJlZ2lzdGVyIGZvciBJU1IgJiBEUEMs IGl0IGNvdWxkIGhhcHBlbiB0aGF0IEd1Qwo+ICsJCQkgKiBzZXRzIHRoZSBiaXQgZm9yIDJuZCBp bnRlcnJ1cHQgYnV0IEhvc3QgY2xlYXJzIG91dAo+ICsJCQkgKiB0aGUgYml0IG9uIGhhbmRsaW5n IHRoZSAxc3QgaW50ZXJydXB0Lgo+ICsJCQkgKi8KPiArCQkJdTMyIG1zZyA9IEk5MTVfUkVBRChT T0ZUX1NDUkFUQ0goMTUpKSAmCj4gKwkJCQkJKEdVQzJIT1NUX01TR19DUkFTSF9EVU1QX1BPU1RF RCB8Cj4gKwkJCQkJIEdVQzJIT1NUX01TR19GTFVTSF9MT0dfQlVGRkVSKTsKPiArCQkJaWYgKG1z Zykgewo+ICsJCQkJLyogQ2xlYXIgdGhlIG1lc3NhZ2UgYml0cyB0aGF0IGFyZSBoYW5kbGVkICov Cj4gKwkJCQlJOTE1X1dSSVRFKFNPRlRfU0NSQVRDSCgxNSksCj4gKwkJCQkJSTkxNV9SRUFEKFNP RlRfU0NSQVRDSCgxNSkpICYgfm1zZyk7Cj4gKwo+ICsJCQkJLyogSGFuZGxlIGZsdXNoIGludGVy cnVwdCBldmVudCBpbiBib3R0b20gaGFsZiAqLwo+ICsJCQkJcXVldWVfd29yayhkZXZfcHJpdi0+ d3EsICZkZXZfcHJpdi0+Z3VjLmV2ZW50c193b3JrKTsKClNpbmNlIHRoZSBsYXRlciBwYXRjaCBp cyBjaGFuZ2luZyB0aGlzIHRvIHVzZSBhIHRocmVhZCwgc2luY2UgeW91IGhhdmUgCmVzdGFibGlz aGVkIHdvcmtlciBpcyB0b28gc2xvdyAtIGVzcGVjaWFsbHkgdGhlIHNoYXJlZCBvbmUgLSBJIHdv dWxkIApyZWFsbHkgcmVjb21tZW5kIHlvdSBzdGFydCB3aXRoIHRoZSBrdGhyZWFkIHN0cmFpZ2h0 IGF3YXkuIE5vdCBoYXZlIHRoZSAKd29ya2VyIGZvciBhIHdoaWxlIGluIHRoZSBzYW1lIHNlcmll cyBhbmQgdGhlbiBsYXRlciBjaGFuZ2UgaXQgdG8gYSB0aHJlYWQuCgo+ICsJCQl9Cj4gKwkJfQo+ ICsJCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwoKV2h5IGRvZXMgdGhlIGFib3Zl IG5lZWRzIHRvIGJlIGRvbmUgdW5kZXIgdGhlIGlycV9sb2NrID8KCj4gKwl9Cj4gK30KPiArCj4g ICBzdGF0aWMgYm9vbCBpbnRlbF9waXBlX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAgCQkJCSAgICAgZW51bSBwaXBlIHBpcGUpCj4gICB7Cj4gQEAg LTM3NTQsNyArMzg0MCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlHRU44X0lSUV9JTklUX05EWChH VCwgMSwgfmd0X2ludGVycnVwdHNbMV0sIGd0X2ludGVycnVwdHNbMV0pOwo+ICAgCS8qCj4gICAJ ICogUlBTIGludGVycnVwdHMgd2lsbCBnZXQgZW5hYmxlZC9kaXNhYmxlZCBvbiBkZW1hbmQgd2hl biBSUFMgaXRzZWxmCj4gLQkgKiBpcyBlbmFibGVkL2Rpc2FibGVkLgo+ICsJICogaXMgZW5hYmxl ZC9kaXNhYmxlZC4gU2FtZSB3aWwgYmUgdGhlIGNhc2UgZm9yIEd1QyBpbnRlcnJ1cHRzLgo+ICAg CSAqLwo+ICAgCUdFTjhfSVJRX0lOSVRfTkRYKEdULCAyLCBkZXZfcHJpdi0+cG1faW1yLCBkZXZf cHJpdi0+cG1faWVyKTsKPiAgIAlHRU44X0lSUV9JTklUX05EWChHVCwgMywgfmd0X2ludGVycnVw dHNbM10sIGd0X2ludGVycnVwdHNbM10pOwo+IEBAIC00NTM5LDYgKzQ2MjUsMTAgQEAgdm9pZCBp bnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4KPiAgIAlJ TklUX1dPUksoJmRldl9wcml2LT5ycHMud29yaywgZ2VuNl9wbV9ycHNfd29yayk7Cj4gICAJSU5J VF9XT1JLKCZkZXZfcHJpdi0+bDNfcGFyaXR5LmVycm9yX3dvcmssIGl2eWJyaWRnZV9wYXJpdHlf d29yayk7Cj4gKwlJTklUX1dPUksoJmRldl9wcml2LT5ndWMuZXZlbnRzX3dvcmssIGdlbjlfZ3Vj Mmhvc3RfZXZlbnRzX3dvcmspOwo+ICsKPiArCWlmIChIQVNfR1VDX1VDT0RFKGRldikpCj4gKwkJ ZGV2X3ByaXYtPnBtX2d1Y19ldmVudHMgPSBHRU45X0dVQ19UT19IT1NUX0lOVF9FVkVOVDsKPgo+ ICAgCS8qIExldCdzIHRyYWNrIHRoZSBlbmFibGVkIHJwcyBldmVudHMgKi8KPiAgIAlpZiAoSVNf VkFMTEVZVklFVyhkZXZfcHJpdikpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggOGJm ZGU3NS4uZDBkMTNhMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC01OTYzLDYg KzU5NjMsNyBAQCBlbnVtIHsKPiAgICNkZWZpbmUgIEdFTjhfREVfUElQRV9BX0lSUQkJKDE8PDE2 KQo+ICAgI2RlZmluZSAgR0VOOF9ERV9QSVBFX0lSUShwaXBlKQkJKDE8PCgxNisocGlwZSkpKQo+ ICAgI2RlZmluZSAgR0VOOF9HVF9WRUNTX0lSUQkJKDE8PDYpCj4gKyNkZWZpbmUgIEdFTjhfR1Rf R1VDX0lSUQkJKDE8PDUpCj4gICAjZGVmaW5lICBHRU44X0dUX1BNX0lSUQkJCSgxPDw0KQo+ICAg I2RlZmluZSAgR0VOOF9HVF9WQ1MyX0lSUQkJKDE8PDMpCj4gICAjZGVmaW5lICBHRU44X0dUX1ZD UzFfSVJRCQkoMTw8MikKPiBAQCAtNTk3NCw2ICs1OTc1LDE2IEBAIGVudW0gewo+ICAgI2RlZmlu ZSBHRU44X0dUX0lJUih3aGljaCkgX01NSU8oMHg0NDMwOCArICgweDEwICogKHdoaWNoKSkpCj4g ICAjZGVmaW5lIEdFTjhfR1RfSUVSKHdoaWNoKSBfTU1JTygweDQ0MzBjICsgKDB4MTAgKiAod2hp Y2gpKSkKPgo+ICsjZGVmaW5lIEdFTjlfR1VDX1RPX0hPU1RfSU5UX0VWRU5UCSgxPDwzMSkKPiAr I2RlZmluZSBHRU45X0dVQ19FWEVDX0VSUk9SX0VWRU5UCSgxPDwzMCkKPiArI2RlZmluZSBHRU45 X0dVQ19ESVNQTEFZX0VWRU5UCQkoMTw8MjkpCj4gKyNkZWZpbmUgR0VOOV9HVUNfU0VNQV9TSUdO QUxfRVZFTlQJKDE8PDI4KQo+ICsjZGVmaW5lIEdFTjlfR1VDX0lPTU1VX01TR19FVkVOVAkoMTw8 MjcpCj4gKyNkZWZpbmUgR0VOOV9HVUNfREJfUklOR19FVkVOVAkJKDE8PDI2KQo+ICsjZGVmaW5l IEdFTjlfR1VDX0RNQV9ET05FX0VWRU5UCQkoMTw8MjUpCj4gKyNkZWZpbmUgR0VOOV9HVUNfRkFU QUxfRVJST1JfRVZFTlQJKDE8PDI0KQo+ICsjZGVmaW5lIEdFTjlfR1VDX05PVElGSUNBVElPTl9F VkVOVAkoMTw8MjMpCj4gKwo+ICAgI2RlZmluZSBHRU44X1JDU19JUlFfU0hJRlQgMAo+ICAgI2Rl ZmluZSBHRU44X0JDU19JUlFfU0hJRlQgMTYKPiAgICNkZWZpbmUgR0VOOF9WQ1MxX0lSUV9TSElG VCAwCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBhZTZjNTM1Li42ODY4ZjMxIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTEwMiw2ICsxMTAyLDkgQEAgdm9p ZCBnZW44X2lycV9wb3dlcl93ZWxsX3Bvc3RfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgIAkJCQkgICAgIHVuc2lnbmVkIGludCBwaXBlX21hc2spOwo+ICAgdm9p ZCBnZW44X2lycV9wb3dlcl93ZWxsX3ByZV9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgIAkJCQkgICAgIHVuc2lnbmVkIGludCBwaXBlX21hc2spOwo+ICt2b2lk IGdlbjlfcmVzZXRfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPiArdm9pZCBnZW45X2VuYWJsZV9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0cyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+Cj4gICAvKiBpbnRlbF9jcnQuYyAq Lwo+ICAgdm9pZCBpbnRlbF9jcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWMuaAo+IGluZGV4IGQ1MmVjYTMuLjI2NjNiNDEgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBAIC0xMzEsNiArMTMxLDEwIEBAIHN0cnVjdCBpbnRlbF9n dWMgewo+ICAgCXN0cnVjdCBpbnRlbF9ndWNfZncgZ3VjX2Z3Owo+ICAgCXN0cnVjdCBpbnRlbF9n dWNfbG9nIGxvZzsKPgo+ICsJLyogR3VDMkhvc3QgaW50ZXJydXB0IHJlbGF0ZWQgc3RhdGUgKi8K PiArCXN0cnVjdCB3b3JrX3N0cnVjdCBldmVudHNfd29yazsKPiArCWJvb2wgaW50ZXJydXB0c19l bmFibGVkOwo+ICsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYWRzX29iajsKPgo+ ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfcG9vbF9vYmo7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+IGluZGV4IDQ4ODJmMTcuLmQ3NGQ3YTUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gQEAgLTQ1MCw2ICs0 NTAsNyBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJ fQo+Cj4gICAJZGlyZWN0X2ludGVycnVwdHNfdG9faG9zdChkZXZfcHJpdik7Cj4gKwlnZW45X3Jl c2V0X2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKPgo+ICAgCWd1Y19mdy0+Z3VjX2Z3X2xvYWRf c3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4KPiBAQCAtNDk2LDYgKzQ5Nyw5IEBAIGlu dCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAkJaW50ZWxfZ3Vj X2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7Cj4KPiAgIAlpZiAo aTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pIHsKPiArCQlpZiAoaTkxNS5ndWNfbG9nX2xldmVs ID49IDApCj4gKwkJCWdlbjlfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzKGRldl9wcml2KTsKPiArCj4g ICAJCWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKGRldl9wcml2KTsKPiAgIAkJaWYg KGVycikKPiAgIAkJCWdvdG8gZmFpbDsKPgoKUmVnYXJkcywKClR2cnRrbwoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==