From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v9 07/39] drm/i915: MEI interface definition Date: Wed, 19 Dec 2018 15:00:21 +0100 Message-ID: <20181219140021.GE21184@phenom.ffwll.local> References: <1544673701-6353-1-git-send-email-ramalingam.c@intel.com> <1544673701-6353-8-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1544673701-6353-8-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ramalingam C Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, tomas.winkler@intel.com List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBEZWMgMTMsIDIwMTggYXQgMDk6MzE6MDlBTSArMDUzMCwgUmFtYWxpbmdhbSBDIHdy b3RlOgo+IERlZmluaW5nIHRoZSBtZWktaTkxNSBpbnRlcmZhY2UgZnVuY3Rpb25zIGFuZCBpbml0 aWFsaXphdGlvbiBvZgo+IHRoZSBpbnRlcmZhY2UuCj4gCj4gdjI6Cj4gICBBZGp1c3QgdG8gdGhl IG5ldyBpbnRlcmZhY2UgY2hhbmdlcy4gW1RvbWFzXQo+ICAgQWRkZWQgZnVydGhlciBkZWJ1ZyBs b2dzIGZvciB0aGUgZmFpbHVyZXMgYXQgTUVJIGkvZi4KPiAgIHBvcnQgaW4gaGRjcF9wb3J0IGRh dGEgaXMgZXF1aXBwZWQgdG8gaGFuZGxlIC12ZSB2YWx1ZXMuCj4gdjM6Cj4gICBtZWkgY29tcCBp cyBtYXRjaGVkIGZvciBnbG9iYWwgaTkxNSBjb21wIG1hc3Rlci4gW0RhbmllbF0KPiAgIEluIGhk Y3Bfc2hpbSBoZGNwX3Byb3RvY29sKCkgaXMgcmVwbGFjZWQgd2l0aCBjb25zdCB2YXJpYWJsZS4g W0RhbmllbF0KPiAgIG1laSB3cmFwcGVycyBhcmUgYWRqdXN0ZWQgYXMgcGVyIHRoZSBpL2YgY2hh bmdlIFtEYW5pZWxdCgpZZWFoIGxvb2tzIGFsbCBnb29kLiBTcG90dGVkIHNvbWUgc21hbGwgc3R1 ZmYgYmVsb3cgc3RpbGwuCgo+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdh bS5jQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg IHwgICA1ICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMjQ4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIGluY2x1ZGUvZHJtL2k5MTVfY29t cG9uZW50LmggICAgICB8ICAgNyArKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDI1OSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBk ZDkzNzE2NDdhOGMuLjE5MWI2ZTBmMDg2YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gQEAgLTM5LDYgKzM5LDcgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fZHBfbXN0X2hlbHBlci5o Pgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21p Yy5oPgo+ICsjaW5jbHVkZSA8ZHJtL2k5MTVfbWVpX2hkY3BfaW50ZXJmYWNlLmg+Cj4gICNpbmNs dWRlIDxtZWRpYS9jZWMtbm90aWZpZXIuaD4KPiAgCj4gIC8qKgo+IEBAIC0zNzksNiArMzgwLDkg QEAgc3RydWN0IGludGVsX2hkY3Bfc2hpbSB7Cj4gIAkvKiBEZXRlY3RzIHBhbmVsJ3MgaGRjcCBj YXBhYmlsaXR5LiBUaGlzIGlzIG9wdGlvbmFsIGZvciBIRE1JLiAqLwo+ICAJaW50ICgqaGRjcF9j YXBhYmxlKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQkJ ICAgIGJvb2wgKmhkY3BfY2FwYWJsZSk7Cj4gKwo+ICsJLyogSERDUCBhZGFwdGF0aW9uKERQL0hE TUkpIHJlcXVpcmVkIG9uIHRoZSBwb3J0ICovCj4gKwllbnVtIGhkY3Bfd2lyZWRfcHJvdG9jb2wg cHJvdG9jb2w7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfaGRjcCB7Cj4gQEAgLTM5OSw2ICs0 MDMsNyBAQCBzdHJ1Y3QgaW50ZWxfaGRjcCB7Cj4gIAkgKiBjb250ZW50IGNhbiBmbG93IG9ubHkg dGhyb3VnaCBhIGxpbmsgcHJvdGVjdGVkIGJ5IEhEQ1AyLjIuCj4gIAkgKi8KPiAgCXU4IGNvbnRl bnRfdHlwZTsKPiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSBwb3J0X2RhdGE7Cj4gIH07Cj4gIAo+ ICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4g aW5kZXggNTg0ZDI3ZjNjNjk5Li45NDA1ZmNlMDdiOTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jCj4gQEAgLTgsOCArOCwxMCBAQAo+ICAKPiAgI2luY2x1ZGUgPGRybS9kcm1QLmg+ Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2hkY3AuaD4KPiArI2luY2x1ZGUgPGRybS9pOTE1X2NvbXBv bmVudC5oPgo+ICAjaW5jbHVkZSA8bGludXgvaTJjLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9yYW5k b20uaD4KPiArI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgo+ICAKPiAgI2luY2x1ZGUgImlu dGVsX2Rydi5oIgo+ICAjaW5jbHVkZSAiaTkxNV9yZWcuaCIKPiBAQCAtODMzLDYgKzgzNSwyMzIg QEAgYm9vbCBpc19oZGNwX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0gcG9ydCBwb3J0KQo+ICAJcmV0dXJuIElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAm JiBwb3J0IDwgUE9SVF9FOwo+ICB9Cj4gIAo+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2Vk KSkgaW50Cj4gK2hkY3AyX3ByZXBhcmVfYWtlX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAo+ICsJCSAgICAgICBzdHJ1Y3QgaGRjcDJfYWtlX2luaXQgKmFrZV9kYXRhKQo+ ICt7Cj4gKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBv cnRfZGF0YTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y29ubmVjdG9yLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyICpj b21wID0gZGV2X3ByaXYtPmNvbXBfbWFzdGVyOwo+ICsJaW50IHJldDsKPiArCj4gKwkvKiBEdXJp bmcgdGhlIGNvbm5lY3RvciBpbml0IGVuY29kZXIgbWlnaHQgbm90IGJlIGluaXRpYWxpemVkICov Cj4gKwlpZiAoZGF0YS0+cG9ydCA9PSBQT1JUX05PTkUpCj4gKwkJZGF0YS0+cG9ydCA9IGNvbm5l Y3Rvci0+ZW5jb2Rlci0+cG9ydDsKPiArCj4gKwlyZXQgPSBjb21wLT5oZGNwX29wcy0+aW5pdGlh dGVfaGRjcDJfc2Vzc2lvbihjb21wLT5tZWlfZGV2LAo+ICsJCQkJCQkgICAgIGRhdGEsIGFrZV9k YXRhKTsKPiArCWlmIChyZXQpCj4gKwkJRFJNX0RFQlVHX0tNUygiUHJlcGFyZV9ha2VfaW5pdCBm YWlsZWQuICVkXG4iLCByZXQpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRp YyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPiAraGRjcDJfdmVyaWZ5X3J4X2NlcnRfcHJl cGFyZV9rbShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQlzdHJ1Y3Qg aGRjcDJfYWtlX3NlbmRfY2VydCAqcnhfY2VydCwKPiArCQkJCWJvb2wgKnBhaXJlZCwKPiArCQkJ CXN0cnVjdCBoZGNwMl9ha2Vfbm9fc3RvcmVkX2ttICpla19wdWJfa20sCj4gKwkJCQlzaXplX3Qg Km1zZ19zeikKPiArewo+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5lY3Rv ci0+aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGk5MTVfY29tcG9uZW50 X21hc3RlciAqY29tcCA9IGRldl9wcml2LT5jb21wX21hc3RlcjsKPiArCWludCByZXQ7Cj4gKwo+ ICsJcmV0ID0gY29tcC0+aGRjcF9vcHMtPnZlcmlmeV9yZWNlaXZlcl9jZXJ0X3ByZXBhcmVfa20o Y29tcC0+bWVpX2RldiwKPiArCQkJCQkJCSAgICAgIGRhdGEsIHJ4X2NlcnQsCj4gKwkJCQkJCQkg ICAgICBwYWlyZWQsIGVrX3B1Yl9rbSwKPiArCQkJCQkJCSAgICAgIG1zZ19zeik7Cj4gKwlpZiAo cmV0IDwgMCkKPiArCQlEUk1fREVCVUdfS01TKCJWZXJpZnkgcnhfY2VydCBmYWlsZWQuICVkXG4i LCByZXQpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBfX2F0dHJpYnV0 ZV9fKCh1bnVzZWQpKSBpbnQKPiAraGRjcDJfdmVyaWZ5X2hwcmltZShzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IsCj4gKwkJICAgIHN0cnVjdCBoZGNwMl9ha2Vfc2VuZF9ocHJpbWUg KnJ4X2hwcmltZSkKPiArewo+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5l Y3Rvci0+aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGk5MTVfY29tcG9u ZW50X21hc3RlciAqY29tcCA9IGRldl9wcml2LT5jb21wX21hc3RlcjsKPiArCWludCByZXQ7Cj4g Kwo+ICsJcmV0ID0gY29tcC0+aGRjcF9vcHMtPnZlcmlmeV9ocHJpbWUoY29tcC0+bWVpX2Rldiwg ZGF0YSwgcnhfaHByaW1lKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIlZl cmlmeSBocHJpbWUgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9 Cj4gKwo+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50Cj4gK2hkY3AyX3N0b3Jl X3BhaXJpbmdfaW5mbyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCSBz dHJ1Y3QgaGRjcDJfYWtlX3NlbmRfcGFpcmluZ19pbmZvICpwYWlyaW5nX2luZm8pCj4gK3sKPiAr CXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRh Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0 b3ItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0ZXIgKmNvbXAgPSBk ZXZfcHJpdi0+Y29tcF9tYXN0ZXI7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IGNvbXAtPmhk Y3Bfb3BzLT5zdG9yZV9wYWlyaW5nX2luZm8oY29tcC0+bWVpX2RldiwgZGF0YSwKPiArCQkJCQkJ IHBhaXJpbmdfaW5mbyk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlEUk1fREVCVUdfS01TKCJTdG9y ZSBwYWlyaW5nIGluZm8gZmFpbGVkLiAlZFxuIiwgcmV0KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ ICt9Cj4gKwo+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgaW50Cj4gK2hkY3AyX3By ZXBhcmVfbGNfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJICAg ICAgc3RydWN0IGhkY3AyX2xjX2luaXQgKmxjX2luaXQpCj4gK3sKPiArCXN0cnVjdCBoZGNwX3Bv cnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhOwo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsK PiArCXN0cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0ZXIgKmNvbXAgPSBkZXZfcHJpdi0+Y29tcF9t YXN0ZXI7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IGNvbXAtPmhkY3Bfb3BzLT5pbml0aWF0 ZV9sb2NhbGl0eV9jaGVjayhjb21wLT5tZWlfZGV2LCBkYXRhLAo+ICsJCQkJCQkgICAgICBsY19p bml0KTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIlByZXBhcmUgbGNfaW5p dCBmYWlsZWQuICVkXG4iLCByZXQpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0 YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPiAraGRjcDJfdmVyaWZ5X2xwcmltZShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJICAgIHN0cnVjdCBoZGNwMl9s Y19zZW5kX2xwcmltZSAqcnhfbHByaW1lKQo+ICt7Cj4gKwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEg KmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YTsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gKwlzdHJ1 Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyICpjb21wID0gZGV2X3ByaXYtPmNvbXBfbWFzdGVyOwo+ ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBjb21wLT5oZGNwX29wcy0+dmVyaWZ5X2xwcmltZShj b21wLT5tZWlfZGV2LCBkYXRhLCByeF9scHJpbWUpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJRFJN X0RFQlVHX0tNUygiVmVyaWZ5IExfUHJpbWUgZmFpbGVkLiAlZFxuIiwgcmV0KTsKPiArCj4gKwly ZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKPiAr aW50IGhkY3AyX3ByZXBhcmVfc2tleShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gKwkJICAgICAgIHN0cnVjdCBoZGNwMl9za2Vfc2VuZF9la3MgKnNrZV9kYXRhKQo+ICt7Cj4g KwlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0 YTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVj dG9yLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyICpjb21wID0g ZGV2X3ByaXYtPmNvbXBfbWFzdGVyOwo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBjb21wLT5o ZGNwX29wcy0+Z2V0X3Nlc3Npb25fa2V5KGNvbXAtPm1laV9kZXYsIGRhdGEsIHNrZV9kYXRhKTsK PiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIkdldCBzZXNzaW9uIGtleSBmYWls ZWQuICVkXG4iLCByZXQpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBpbnQKPiAraGRjcDJfdmVyaWZ5X3JlcF90b3BvbG9neV9w cmVwYXJlX2FjayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkgICAg ICBzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRfcmVjZWl2ZXJpZF9saXN0Cj4gKwkJCQkJCQkJKnJlcF90 b3BvbG9neSwKPiArCQkJCSAgICAgIHN0cnVjdCBoZGNwMl9yZXBfc2VuZF9hY2sgKnJlcF9zZW5k X2FjaykKPiArewo+ICsJc3RydWN0IGhkY3BfcG9ydF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+ aGRjcC5wb3J0X2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGk5MTVfY29tcG9uZW50X21h c3RlciAqY29tcCA9IGRldl9wcml2LT5jb21wX21hc3RlcjsKPiArCWludCByZXQ7Cj4gKwo+ICsJ cmV0ID0gY29tcC0+aGRjcF9vcHMtPnJlcGVhdGVyX2NoZWNrX2Zsb3dfcHJlcGFyZV9hY2soY29t cC0+bWVpX2RldiwKPiArCQkJCQkJCSAgICAgIGRhdGEsCj4gKwkJCQkJCQkgICAgICByZXBfdG9w b2xvZ3ksCj4gKwkJCQkJCQkgICAgICByZXBfc2VuZF9hY2spOwo+ICsJaWYgKHJldCA8IDApCj4g KwkJRFJNX0RFQlVHX0tNUygiVmVyaWZ5IHJlcCB0b3BvbG9neSBmYWlsZWQuICVkXG4iLCByZXQp Owo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1 bnVzZWQpKSBpbnQKPiAraGRjcDJfdmVyaWZ5X21wcmltZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gKwkJICAgIHN0cnVjdCBoZGNwMl9yZXBfc3RyZWFtX3JlYWR5ICpzdHJl YW1fcmVhZHkpCj4gK3sKPiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0 b3ItPmhkY3AucG9ydF9kYXRhOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpOTE1X2NvbXBvbmVu dF9tYXN0ZXIgKmNvbXAgPSBkZXZfcHJpdi0+Y29tcF9tYXN0ZXI7Cj4gKwlpbnQgcmV0Owo+ICsK PiArCXJldCA9IGNvbXAtPmhkY3Bfb3BzLT52ZXJpZnlfbXByaW1lKGNvbXAtPm1laV9kZXYsIGRh dGEsIHN0cmVhbV9yZWFkeSk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlEUk1fREVCVUdfS01TKCJW ZXJpZnkgbXByaW1lIGZhaWxlZC4gJWRcbiIsIHJldCk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAr fQo+ICsKPiArc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCj4gK2ludCBoZGNwMl9hdXRo ZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiAr CXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRh Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0 b3ItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0ZXIgKmNvbXAgPSBk ZXZfcHJpdi0+Y29tcF9tYXN0ZXI7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IGNvbXAtPmhk Y3Bfb3BzLT5lbmFibGVfaGRjcF9hdXRoZW50aWNhdGlvbihjb21wLT5tZWlfZGV2LCBkYXRhKTsK PiArCWlmIChyZXQgPCAwKQo+ICsJCURSTV9ERUJVR19LTVMoIkVuYWJsZSBoZGNwIGF1dGggZmFp bGVkLiAlZFxuIiwgcmV0KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMg X19hdHRyaWJ1dGVfXygodW51c2VkKSkKPiAraW50IGhkY3AyX2Nsb3NlX21laV9zZXNzaW9uKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiArCXN0 cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0ZXIgKmNvbXAgPSBkZXZfcHJpdi0+Y29tcF9tYXN0ZXI7 Cj4gKwo+ICsJcmV0dXJuIGNvbXAtPmhkY3Bfb3BzLT5jbG9zZV9oZGNwX3Nlc3Npb24oY29tcC0+ bWVpX2RldiwKPiArCQkJCQkJICAmY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0YSk7Cj4gK30KPiAr Cj4gK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+ICtpbnQgaGRjcDJfZGVhdXRoZW50 aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXJl dHVybiBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihjb25uZWN0b3IpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IGk5MTVfaGRjcF9jb21wb25lbnRfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCB2b2lk ICpkYXRhKQo+ICt7Cj4gKwlyZXR1cm4gIXN0cmNtcChkZXYtPmRyaXZlci0+bmFtZSwgIm1laV9o ZGNwIik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaW5pdGlhbGl6ZV9oZGNwX3BvcnRfZGF0YShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9o ZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKPiArCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAq ZGF0YSA9ICZoZGNwLT5wb3J0X2RhdGE7Cj4gKwo+ICsJZGF0YS0+cG9ydCA9IFBPUlRfTk9ORTsK PiArCWlmIChjb25uZWN0b3ItPmVuY29kZXIpCj4gKwkJZGF0YS0+cG9ydCA9IGNvbm5lY3Rvci0+ ZW5jb2Rlci0+cG9ydDsKClRoaXMgYW5kIHRoZSBjb2RlIGFib3ZlIGluIGFrZV9pbml0IHN0aWxs IGxvb2sgc3RyYW5nZS4gSSdtIG5vdCByZWFsbHkKZm9sbG93aW5nIGhvdyB3ZSBjYW4gZW5kIHVw IHdpdGggYW4gaW50aWFsaXphdGlvbiBzZXF1ZW5jZSB3aGVyZSB3ZSBkbyBub3QKeWV0IGtub3cg dGhlIGVuY29kZXIgYW5kIGhlbmNlIGNhbid0IGFzc2lnbiB0aGUgcG9ydD8KClRoYXQgc3RpbGwg c21lbGxzIGxpa2UgYSBidWcuIEkgdGhpbmsgd2Ugc2hvdWxkIGJlIGFibGUgdG8gc2V0IHRoaXMK dW5jb25kdGlvbmFsbHkgKGlmIG5vdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5KS4KCj4gKwo+ ICsJZGF0YS0+cG9ydF90eXBlID0gKHU4KUhEQ1BfUE9SVF9UWVBFX0lOVEVHUkFURUQ7Cj4gKwlk YXRhLT5wcm90b2NvbCA9ICh1OCloZGNwLT5zaGltLT5wcm90b2NvbDsKPiArCj4gKwlkYXRhLT5r ID0gMTsKPiArCWlmICghZGF0YS0+c3RyZWFtcykKPiArCQlkYXRhLT5zdHJlYW1zID0ga2NhbGxv YyhkYXRhLT5rLAo+ICsJCQkJCXNpemVvZihzdHJ1Y3QgaGRjcDJfc3RyZWFtaWRfdHlwZSksCj4g KwkJCQkJR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWRhdGEtPnN0cmVhbXMpIHsKPiArCQlEUk1fRVJS T1IoIk91dCBvZiBNZW1vcnlcbiIpOwo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJfQo+ICsKPiAr CWRhdGEtPnN0cmVhbXNbMF0uc3RyZWFtX2lkID0gMDsKPiArCWRhdGEtPnN0cmVhbXNbMF0uc3Ry ZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gIGJvb2wgaXNfaGRjcDJfc3VwcG9ydGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgewo+ICAJcmV0dXJuICgoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19H RU1JTklMQUtFKGRldl9wcml2KSB8fAo+IEBAIC04NDMsMTAgKzEwNzEsMjggQEAgc3RhdGljIHZv aWQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVj dG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3It PmhkY3A7Cj4gKwlzdGF0aWMgYm9vbCBjb21wX21hdGNoX2FkZGVkOwo+ICsJaW50IHJldDsKPiAg Cj4gIAlXQVJOX09OKCFpc19oZGNwMl9zdXBwb3J0ZWQoZGV2X3ByaXYpKTsKPiAgCj4gLQkvKiBU T0RPOiBNRUkgaW50ZXJmYWNlIG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIGhlcmUgKi8KPiArCXJl dCA9IGluaXRpYWxpemVfaGRjcF9wb3J0X2RhdGEoY29ubmVjdG9yKTsKPiArCWlmIChyZXQpIHsK PiArCQlEUk1fREVCVUdfS01TKCJNZWkgaGRjcCBkYXRhIGluaXQgZmFpbGVkXG4iKTsKPiArCQly ZXR1cm47Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIENvbXBvbmVudCBmb3IgbWVpIGlzIGNvbW1v biBhY3Jvc3MgdGhlIGNvbm5lY3Rvci4KPiArCSAqIEFkZGluZyB0aGUgbWF0Y2ggb25jZSBpcyBz dWZmaWNpZW50Lgo+ICsJICogVE9ETzogSW5zdGVhZCBvZiBzdGF0aWMgYm9vbCwgZG8gd2UgbmVl ZCBmbGFnIGluIGRldl9wcml2Py4KPiArCSAqLwo+ICsJaWYgKCFjb21wX21hdGNoX2FkZGVkKSB7 Cj4gKwkJY29tcG9uZW50X21hdGNoX2FkZChkZXZfcHJpdi0+ZHJtLmRldiwgJmRldl9wcml2LT5t YXN0ZXJfbWF0Y2gsCj4gKwkJCQkgICAgaTkxNV9oZGNwX2NvbXBvbmVudF9tYXRjaCwgZGV2X3By aXYpOwoKUGF0Y2ggc2VyaWVzIG5lZWRzIHRvIGJlIHJlb3JkZXJlZDogV2UgY2FuIG9ubHkgZG8g dGhlIGNvbXBvbmVudF9tYXRjaF9hZGQKb25jZSB0aGUgbWVpIGNvbXBvbmVudCBpcyBtZXJnZWQu IE1heWJlIGp1c3Qgc3BsaXQgb3V0IHRoaXMgaHVuayBpbnRvIGEKZmluYWwgcGF0Y2g/Cgo+ICsJ CWNvbXBfbWF0Y2hfYWRkZWQgPSB0cnVlOwoKVGhpcyBzdGF0aWMgaGVyZSBraW5kYSB3b3JrcyBi ZWNhdXNlIHRoZXJlJ3Mgb25seSAxIGdwdSwgYnV0IGl0J3MgYSBiYWQKaGFjay4gUGxlYXNlIG1v dmUgdG8gZHJtX2k5MTVfcHJpdmF0ZSAobmV4dCB0byB0aGUgb3RoZXIgY29tcG9uZW50IHN0dWZm KS4KCkFsc28sIHdlIG5lZWQgdG8gb25seSBkbyB0aGlzIHdoZW4gQ09ORklHX01FSV9IRENQIGlz IGVuYWJsZWQsIG90aGVyd2lzZQpoZGNwMiBpbml0IG11c3QgZmFpbC4gTWF5YmUgYmVzdCB0byBw dXQgdGhhdCBpbnRvIHRoZSBpc19oZGNwMl9zdXBwb3J0ZWQKaGVscGVyIGZvciBub3cuIE9uY2Ug d2UgZ2V0IG5vbi1NRUkgaGRjcDIgKGRlZmluaXRlbHkgbmVlZGVkIGZvciBkaXNjcmV0ZQpncHUp IHdlIGNhbiBzcGxpdCB0aGF0IHVwIGludG8gaXNfbWVpX2hkY3AyX3N1cHBvcnQgYW5kCmlzX290 aGVyX2hkY3AyX3N1cHBvcnRlZC4KCk90aGVyd2lzZSBsZ3RtIEkgdGhpbmsuCi1EYW5pZWwKCj4g Kwl9Cj4gKwo+ICAJaGRjcC0+aGRjcDJfc3VwcG9ydGVkID0gMTsKPiAgfQo+ICAKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCBiL2luY2x1ZGUvZHJtL2k5MTVfY29t cG9uZW50LmgKPiBpbmRleCA2Zjk0ZGRkM2YyYzIuLjdhNzIwMTM3NGNmZSAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9j b21wb25lbnQuaAo+IEBAIC0yNCw2ICsyNCw4IEBACj4gICNpZm5kZWYgX0k5MTVfQ09NUE9ORU5U X0hfCj4gICNkZWZpbmUgX0k5MTVfQ09NUE9ORU5UX0hfCj4gIAo+ICsjaW5jbHVkZSA8ZHJtL2k5 MTVfbWVpX2hkY3BfaW50ZXJmYWNlLmg+Cj4gKwo+ICAjaW5jbHVkZSAiZHJtX2F1ZGlvX2NvbXBv bmVudC5oIgo+ICAKPiAgLyogTUFYX1BPUlQgaXMgdGhlIG51bWJlciBvZiBwb3J0Cj4gQEAgLTUw LDggKzUyLDEzIEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCB7Cj4gICAqIHN0cnVjdCBp OTE1X2NvbXBvbmVudF9tYXN0ZXIgLSBVc2VkIGZvciBjb21tdW5pY2F0aW9uIGJldHdlZW4gaTkx NQo+ICAgKgkJCQkgIGFuZCBhbnkgb3RoZXIgZHJpdmVycyBmb3IgdGhlIHNlcnZpY2VzCj4gICAq CQkJCSAgb2YgZGlmZmVyZW50IGZlYXR1cmUuCj4gKyAqIEBtZWlfZGV2OiBkZXZpY2UgdGhhdCBw cm92aWRlIHRoZSBIRENQMi4yIHNlcnZpY2UgZnJvbSBNRUkgQnVzLgo+ICsgKiBAaGRjcF9vcHM6 IE9wcyBpbXBsZW1lbnRlZCBieSBtZWlfaGRjcCBkcml2ZXIsIHVzZWQgYnkgaTkxNSBkcml2ZXIu Cj4gICAqLwo+ICBzdHJ1Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyIHsKPiArCXN0cnVjdCBkZXZp Y2UgKm1laV9kZXY7Cj4gKwljb25zdCBzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBvbmVudF9vcHMgKmhk Y3Bfb3BzOwo+ICsKPiAgCS8qCj4gIAkgKiBBZGQgaGVyZSB0aGUgaW50ZXJmYWNlIGRldGFpbHMg YmV0d2VlbiBJOTE1IGFuZCBpbnRlcmVzdGVkIG1vZHVsZXMuCj4gIAkgKi8KPiAtLSAKPiAyLjcu NAo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=