From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [RFC 2/3] drm/i915: Prefer IS_GEN check with bitmask. Date: Fri, 26 Oct 2018 12:40:56 -0700 Message-ID: <20181026194055.GI2232@intel.com> References: <20181023233620.10159-1-rodrigo.vivi@intel.com> <20181023233620.10159-2-rodrigo.vivi@intel.com> <20181024102257.GZ9144@intel.com> <20181024234106.GK3942@intel.com> <20181025105903.GI9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF1C46E54C for ; Fri, 26 Oct 2018 19:40:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Julia Lawall Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMjUsIDIwMTggYXQgMTI6MTE6NTdQTSArMDEwMCwgSnVsaWEgTGF3YWxsIHdy b3RlOgo+IAo+IAo+IE9uIFRodSwgMjUgT2N0IDIwMTgsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToK PiAKPiA+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0IDA0OjQxOjA2UE0gLTA3MDAsIFJvZHJpZ28g Vml2aSB3cm90ZToKPiA+ID4gT24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDE6MjI6NTdQTSArMDMw MCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+IE9uIFR1ZSwgT2N0IDIzLCAyMDE4IGF0 IDA0OjM2OjE5UE0gLTA3MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gPiA+IFdoZW5ldmVy IHBvc3NpYmxlIHdlIHNob3VsZCBzdGljayB3aXRoIElTX0dFTjxuPiBjaGVja3MuCj4gPiA+ID4g Pgo+ID4gPiA+ID4gQml0bWFrcyBoYXMgYmVlbiBpbnRyb2R1Y2VkIG9uIGNvbW1pdCBhZTc2MTdm MGVmMTggKCJkcm0vaTkxNToKPiA+ID4gPiA+IEFsbG93IG9wdGltaXplZCBwbGF0Zm9ybSBjaGVj a3MiKSBmb3IgZWZmaWNpZW5jeS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBMZXQncyBzdGljayB3aXRo IGl0IHdoZW5ldmVyIHBvc3NpYmxlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoaXMgcGF0Y2ggd2Fz IGdlbmVyYXRlZCB3aXRoIGNvY2NpbmVsbGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gc3BhdGNoIC1z cF9maWxlIGlzX2dlbi5jb2NjaSAqe2MsaH0gLS1pbi1wbGFjZQo+ID4gPiA+ID4KPiA+ID4gPiA+ IGlzX2dlbi5jb2NjaToKPiA+ID4gPiA+IEBnZW4yQCBleHByZXNzaW9uIGU7IEBACj4gPiA+ID4g PiAtSU5URUxfR0VOKGUpID09IDIKPiA+ID4gPiA+ICtJU19HRU4yKGUpCj4gPiA+ID4gPiBAZ2Vu M0AgZXhwcmVzc2lvbiBlOyBAQAo+ID4gPiA+ID4gLUlOVEVMX0dFTihlKSA9PSAzCj4gPiA+ID4g PiArSVNfR0VOMyhlKQo+ID4gPiA+ID4gQGdlbjRAIGV4cHJlc3Npb24gZTsgQEAKPiA+ID4gPiA+ IC1JTlRFTF9HRU4oZSkgPT0gNAo+ID4gPiA+ID4gK0lTX0dFTjQoZSkKPiA+ID4gPiA+IEBnZW41 QCBleHByZXNzaW9uIGU7IEBACj4gPiA+ID4gPiAtSU5URUxfR0VOKGUpID09IDUKPiA+ID4gPiA+ ICtJU19HRU41KGUpCj4gPiA+ID4gPiBAZ2VuNkAgZXhwcmVzc2lvbiBlOyBAQAo+ID4gPiA+ID4g LUlOVEVMX0dFTihlKSA9PSA2Cj4gPiA+ID4gPiArSVNfR0VONihlKQo+ID4gPiA+ID4gQGdlbjdA IGV4cHJlc3Npb24gZTsgQEAKPiA+ID4gPiA+IC1JTlRFTF9HRU4oZSkgPT0gNwo+ID4gPiA+ID4g K0lTX0dFTjcoZSkKPiA+ID4gPiA+IEBnZW44QCBleHByZXNzaW9uIGU7IEBACj4gPiA+ID4gPiAt SU5URUxfR0VOKGUpID09IDgKPiA+ID4gPiA+ICtJU19HRU44KGUpCj4gPiA+ID4gPiBAZ2VuOUAg ZXhwcmVzc2lvbiBlOyBAQAo+ID4gPiA+ID4gLUlOVEVMX0dFTihlKSA9PSA5Cj4gPiA+ID4gPiAr SVNfR0VOOShlKQo+ID4gPiA+ID4gQGdlbjEwQCBleHByZXNzaW9uIGU7IEBACj4gPiA+ID4gPiAt SU5URUxfR0VOKGUpID09IDEwCj4gPiA+ID4gPiArSVNfR0VOMTAoZSkKPiA+ID4gPiA+IEBnZW4x MUAgZXhwcmVzc2lvbiBlOyBAQAo+ID4gPiA+ID4gLUlOVEVMX0dFTihlKSA9PSAxMQo+ID4gPiA+ ID4gK0lTX0dFTjExKGUpCj4gPiA+ID4KPiA+ID4gPiBTbGlnaHRseSBsZXNzIHJlcGV0aXRpdmUg dmVyc2lvbi4KPiA+ID4KPiA+ID4gVGhhbmtzLiBJJ20gc3VwcGVyIG5ld2JpZSBvbiBjb2NjaW5l bGxlIGFuZCBpdCB3YXMKPiA+ID4gZWFzaWVyIHRvIGR1cGxpY2F0ZSB0aGVuIHRyeWluZyB0byBs ZWFybiBhbGwgdGhpcyBuZXcgbGFuZy4KPiA+ID4KPiA+ID4gQnV0IEkgcmVhbGx5IGFwcHJlY2lh dGUgeW91IHNoYXJpbmcgdGhpcy4gSSdkIGxpa2UKPiA+ID4gdG8gZ28gd2l0aCB0aGlzIHNvIHRo ZSBiZXR0ZXIgcnVsZSBrZWVwcyBvbiBjb21taXQgbWVzc2FnZS4KPiA+ID4KPiA+ID4gPiBTYWRs eSBub3Qgc3VwZXIgbmVhdCBvbgo+ID4gPiA+IGFjY291bnQgb2YgaGF2aW5nIHRvIHVzZSB0aGUg cHl0aG9uIHN0dWZmLgo+ID4gPgo+ID4gPiBob3dldmVyIGl0IHNlZW1zIHB5dGhvbiB2ZXJzaW9u IGRpZG4ndCB3b3JrIHNvIHdlbGwgaGVyZToKPiA+ID4KPiA+ID4gaW5pdF9kZWZzX2J1aWx0aW5z OiAvdXNyL2xpYjY0L2NvY2NpbmVsbGUvc3RhbmRhcmQuaAo+ID4gPiBQeXRob24gZXJyb3I6IE5v IG1vZHVsZSBuYW1lZCBjb2NjaWxpYi5lbGVtcwo+ID4gPgo+ID4gPiBkbyB5b3UgaGF2ZSBhbnkg aWRlYSBhYm91dCBpdD8KPiA+Cj4gPiBOZXZlciBzZWVuIGl0LiBPbiBnZW50b28gaXQganVzdCB3 b3JrcyB3aGVuIEkgaGF2ZSB0aGUgcHl0aG9uCj4gPiB1c2UgZmxhZyBlbmFibGVkLgo+ID4KPiA+ IE1heWJlIHlvdXIgZGlzdHJvIGRvZXNuJ3QgaW5jbHVkZSB0aGUgcHl0aG9uIHN1cHBvcnQgaW4g dGhlCj4gPiBidWlsZCwgb3IgbWF5YmUgc29tZSBraW5kIG9mIHB5dGhvbiB2ZXJzaW9uIGlzc3Vl Pwo+IAo+IFRoYW5rcyBmb3IgdGhlIHJlcG9ydC4gIEkgd2lsbCBoYXZlIHNvbWVvbmUgbG9vayBp bnRvIGl0LiAgSXQncyBhbgo+IGludGVybmFsIENvY2NpbmVsbGUgdGhpbmcuICBQZXJoYXBzIHB5 dGhvbiBpcyBub3QgZW5hYmxlZC4gIERvIHlvdSBoYXZlCj4gdGhlIHZlcnNpb24gb2YgQ29jY2lu ZWxsZSBmcm9tIGdpdGh1Yj8KCkkganVzdCB0cmllZCB3aXRoIGNvY2NpbmVsbGUgZnJvbSBnaXRo dWIgYnV0IGdvdCBzYW1lIHJlc3VsdC4KCkJ1dCB3aXRoIHRoaXMgY29tbWl0IGJlZm9yZSB0aGUg YnVtcCB0byBhdXRvbWFrZTEuMTY6Cgpjb21taXQgNGRiOTU5OTg3Njg1NTdjNjZkNmUzMzdiZTIy NTMwMzJiNWQ4MTBiYyAoSEVBRCAtPiBtYXN0ZXIpCkF1dGhvcjogVGhpZXJyeSBNYXJ0aW5leiA8 dGhpZXJyeS5tYXJ0aW5lekBpbnJpYS5mcj4KRGF0ZTogICBXZWQgU2VwIDEyIDE0OjQzOjQxIDIw MTggKzAyMDAKCiAgICBDb21wdXRlIGRlcGVuZCBieSBjYWxsaW5nIG1ha2UgcmVjdXJzaWxldnkK ICAgIAogICAgVGhlIHNldCBvZiBmaWxlcyBpbiAkKHNvdXJjZV9maWxlcykgbWF5IGNoYW5nZSB3 aGVuIHRoZSB0YXJiYWxsIGlzCiAgICB1bnBhY2tlZC4KCi0tLS0KCiQgcHl0aG9uIC0tdmVyc2lv bgpQeXRob24gMi43LjE1CiQgcHl0aG9uMyAtLXZlcnNpb24KUHl0aG9uIDMuNi42CgotLS0tCgpJ IGJlbGlldmUgSSdtIG1vdmluZyB0aGlzIHBhdGNoIHdpdGggdGhlIHJlcGV0aXRpdmUgYmFkCnJ1 bGUgZm9yIG5vdyB0aGF0IEknbSBzdXJlIGl0IHdvcmtzIGluIG1vc3Qgb2YgdGhlIGRpc3Ryb3Mu CgpUaGFua3MsClJvZHJpZ28uCgoKCj4gCj4ganVsaWEKPiAKPiA+Cj4gPiA+Cj4gPiA+IEkgY291 bGRuJ3QgZmluZCBhbnl0aGluZyBvbiBnb29nbGUgb3Igb24gcGlwIHJlcG9zaXRvcmllcwo+ID4g PiBmb3IgdGhhdC4KPiA+ID4KPiA+ID4gVGhhbmtzLAo+ID4gPiBSb2RyaWdvLgo+ID4gPgo+ID4g PiA+Cj4gPiA+ID4gQGZpbmRACj4gPiA+ID4gaWRlbnRpZmllciBvbGQgPX4gIl5JTlRFTF9HRU4k IjsKPiA+ID4gPiBleHByZXNzaW9uIGV4cDsKPiA+ID4gPiBjb25zdGFudCBnZW47Cj4gPiA+ID4g QEAKPiA+ID4gPiBvbGQoZXhwKSA9PSBnZW4KPiA+ID4gPgo+ID4gPiA+IEBzY3JpcHQ6cHl0aG9u IHJlbmFtZUAKPiA+ID4gPiBvbGQgPDwgZmluZC5vbGQ7Cj4gPiA+ID4gZ2VuIDw8IGZpbmQuZ2Vu Owo+ID4gPiA+IG5ldzsKPiA+ID4gPiBAQAo+ID4gPiA+IGRlZiBkb19yZW5hbWUob2xkLCBnZW4p Ogo+ID4gPiA+ICAgICByZXR1cm4gIklTX0dFTiIgKyBnZW4KPiA+ID4gPiBjb2NjaW5lbGxlLm5l dyA9IGNvY2NpLm1ha2VfaWRlbnQoZG9fcmVuYW1lKG9sZCwgZ2VuKSkKPiA+ID4gPiBwcmludCBj b2NjaW5lbGxlLm5ldwo+ID4gPiA+Cj4gPiA+ID4gQEAKPiA+ID4gPiBpZGVudGlmaWVyIGZpbmQu b2xkOwo+ID4gPiA+IGV4cHJlc3Npb24gZmluZC5leHA7Cj4gPiA+ID4gY29uc3RhbnQgZmluZC5n ZW47Cj4gPiA+ID4gaWRlbnRpZmllciByZW5hbWUubmV3Owo+ID4gPiA+IEBACj4gPiA+ID4gLSBv bGQoZXhwKSA9PSBnZW4KPiA+ID4gPiArIG5ldyhleHApCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+ IEkgd2lzaCBpdCB3b3VsZCBsb29rIHNvbWV0aGluZyBtb3JlIGxpa2UgdGhpczoKPiA+ID4gPgo+ ID4gPiA+IEBACj4gPiA+ID4gaWRlbnRpZmllciBvbGQJPX4gIl5JTlRFTF9HRU4kIjsKPiA+ID4g PiBleHByZXNzaW9uIGV4cDsKPiA+ID4gPiBjb25zdGFudCBnZW47Cj4gPiA+ID4gZnJlc2ggaWRl bnRpZmllciBuZXcgPSAiSVNfR0VOIiAjIyBnZW47Cj4gPiA+ID4gQEAKPiA+ID4gPiAtIG9sZChl eHApID09IGdlbgo+ID4gPiA+ICsgbmV3KGV4cCkKPiA+ID4gPgo+ID4gPiA+IEJ1dCBjb2NjaW5l bGxlIGRvZXNuJ3Qgc2VlbSB0byBhY2NlcHQgdGhlIGNvbnN0YW50IGluIHRoZSBmcmVzaAo+ID4g PiA+IGlkZW50aWZpZXIgdGhpbmcuCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IFBhdGNoIGxvb2tz IGZpbmUgYW55d2F5cwo+ID4gPiA+IFJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gQ2M6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gPiA+ID4gPiBTaWdu ZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gPiA+ID4g PiAtLS0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAg IHwgMiArLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICAg ICAgfCAyICstCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2lu Zm8uYyB8IDYgKysrLS0tCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jICAgICB8IDIgKy0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jICAgICAgICAgIHwgMiArLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jICAgfCAyICstCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJjLmMgICAgICAgICB8IDIgKy0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jICAgICAgICAgIHwgNCArKy0tCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcHNyLmMgICAgICAgICB8IDIgKy0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggIHwgNCArKy0tCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgICAgICB8IDIgKy0KPiA+ID4gPiA+ICAxMSBmaWxlcyBj aGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKPiA+ID4gPiA+Cj4gPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ID4gPiA+IGluZGV4IGJhYWMzNWY2OThmOS4u ZDc1NWU4NGZlZDA3IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu Ywo+ID4gPiA+ID4gQEAgLTEzMjksNyArMTMyOSw3IEBAIGludGVsX2dldF9kcmFtX2luZm8oc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiA+ID4gIAkvKiBOZWVkIHRvIGNh bGN1bGF0ZSBiYW5kd2lkdGggb25seSBmb3IgR2VuOSAqLwo+ID4gPiA+ID4gIAlpZiAoSVNfQlJP WFRPTihkZXZfcHJpdikpCj4gPiA+ID4gPiAgCQlyZXQgPSBieHRfZ2V0X2RyYW1faW5mbyhkZXZf cHJpdik7Cj4gPiA+ID4gPiAtCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0gOSkKPiA+ ID4gPiA+ICsJZWxzZSBpZiAoSVNfR0VOOShkZXZfcHJpdikpCj4gPiA+ID4gPiAgCQlyZXQgPSBz a2xfZ2V0X2RyYW1faW5mbyhkZXZfcHJpdik7Cj4gPiA+ID4gPiAgCWVsc2UKPiA+ID4gPiA+ICAJ CXJldCA9IHNrbF9kcmFtX2dldF9jaGFubmVsc19pbmZvKGRldl9wcml2KTsKPiA+ID4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gPiA+ID4gPiBpbmRleCA3NjA3NThhZDIxYzEu LjM1MjZmNmQ5YzFhZCAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2F0b21pYy5jCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdG9taWMuYwo+ID4gPiA+ID4gQEAgLTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9hdG9taWNfc2V0dXBfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2Nh bGVyX3N0YQo+ID4gPiA+ID4gIAlpZiAocGxhbmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPmJhc2Uu ZmIgJiYKPiA+ID4gPiA+ICAJICAgIHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmlzX3l1 diAmJgo+ID4gPiA+ID4gIAkgICAgcGxhbmVfc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+bnVtX3Bs YW5lcyA+IDEpIHsKPiA+ID4gPiA+IC0JCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYK PiA+ID4gPiA+ICsJCWlmIChJU19HRU45KGRldl9wcml2KSAmJgo+ID4gPiA+ID4gIAkJICAgICFJ U19HRU1JTklMQUtFKGRldl9wcml2KSkKPiA+ID4gPiA+ICAJCQltb2RlID0gU0tMX1BTX1NDQUxF Ul9NT0RFX05WMTI7Cj4gPiA+ID4gPiAgCQllbHNlCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiA+ID4gPiA+IGluZGV4IDAzZGY0ZTMzNzYzZC4uNTYx YWQwZDRhNTNkIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGV2aWNlX2luZm8uYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGV2aWNlX2luZm8uYwo+ID4gPiA+ID4gQEAgLTc0NCw3ICs3NDQsNyBAQCB2b2lkIGludGVs X2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8p Cj4gPiA+ID4gPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwKSB7Cj4gPiA+ID4gPiAg CQlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQo+ID4gPiA+ID4gIAkJCWluZm8tPm51bV9z Y2FsZXJzW3BpcGVdID0gMjsKPiA+ID4gPiA+IC0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID09IDkpIHsKPiA+ID4gPiA+ICsJfSBlbHNlIGlmIChJU19HRU45KGRldl9wcml2KSkgewo+ ID4gPiA+ID4gIAkJaW5mby0+bnVtX3NjYWxlcnNbUElQRV9BXSA9IDI7Cj4gPiA+ID4gPiAgCQlp bmZvLT5udW1fc2NhbGVyc1tQSVBFX0JdID0gMjsKPiA+ID4gPiA+ICAJCWluZm8tPm51bV9zY2Fs ZXJzW1BJUEVfQ10gPSAxOwo+ID4gPiA+ID4gQEAgLTg0Myw5ICs4NDMsOSBAQCB2b2lkIGludGVs X2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8p Cj4gPiA+ID4gPiAgCQljaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KGRldl9wcml2KTsKPiA+ID4g PiA+ICAJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiA+ID4gPiA+ICAJCWJyb2Fk d2VsbF9zc2V1X2luZm9faW5pdChkZXZfcHJpdik7Cj4gPiA+ID4gPiAtCWVsc2UgaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPT0gOSkKPiA+ID4gPiA+ICsJZWxzZSBpZiAoSVNfR0VOOShkZXZfcHJp dikpCj4gPiA+ID4gPiAgCQlnZW45X3NzZXVfaW5mb19pbml0KGRldl9wcml2KTsKPiA+ID4gPiA+ IC0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSAxMCkKPiA+ID4gPiA+ICsJZWxzZSBp ZiAoSVNfR0VOMTAoZGV2X3ByaXYpKQo+ID4gPiA+ID4gIAkJZ2VuMTBfc3NldV9pbmZvX2luaXQo ZGV2X3ByaXYpOwo+ID4gPiA+ID4gIAllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEx KQo+ID4gPiA+ID4gIAkJZ2VuMTFfc3NldV9pbmZvX2luaXQoZGV2X3ByaXYpOwo+ID4gPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gaW5kZXggZmM3ZTNiMGJk OTVjLi5hNjg2OWM1NDdmM2MgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gQEAgLTUyNjgsNyArNTI2OCw3IEBAIHN0YXRpYyBi b29sIG5lZWRzX252MTJfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4g PiA+ID4gIAlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfQlJPWFRPTihkZXZfcHJpdikp Cj4gPiA+ID4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLQlpZiAoKElO VEVMX0dFTihkZXZfcHJpdikgPT0gOSAmJiAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHx8Cj4g PiA+ID4gPiArCWlmICgoSVNfR0VOOShkZXZfcHJpdikgJiYgIUlTX0dFTUlOSUxBS0UoZGV2X3By aXYpKSB8fAo+ID4gPiA+ID4gIAkgICAgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpCj4gPiA+ID4g PiAgCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiA+ID4gPiA+IGluZGV4IDhjMzhlZmVmNzdhMS4uNzYxNDQ3YzQ1NmM3IDEwMDY0NAo+ID4g PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gQEAgLTQ1NSw3ICs0 NTUsNyBAQCBpbnRlbF9kcF9zZXRfc291cmNlX3JhdGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gPiA+ID4gPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwKSB7Cj4gPiA+ID4g PiAgCQlzb3VyY2VfcmF0ZXMgPSBjbmxfcmF0ZXM7Cj4gPiA+ID4gPiAgCQlzaXplID0gQVJSQVlf U0laRShjbmxfcmF0ZXMpOwo+ID4gPiA+ID4gLQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPT0g MTApCj4gPiA+ID4gPiArCQlpZiAoSVNfR0VOMTAoZGV2X3ByaXYpKQo+ID4gPiA+ID4gIAkJCW1h eF9yYXRlID0gY25sX21heF9zb3VyY2VfcmF0ZShpbnRlbF9kcCk7Cj4gPiA+ID4gPiAgCQllbHNl Cj4gPiA+ID4gPiAgCQkJbWF4X3JhdGUgPSBpY2xfbWF4X3NvdXJjZV9yYXRlKGludGVsX2RwKTsK PiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gPiA+ID4gPiBp bmRleCA2NWY2YzliYzEwY2YuLmE0YjFkODJjODlkYSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gPiA+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ID4gPiA+ID4gQEAgLTgxMiw3ICs4 MTIsNyBAQCB1MzIgaW50ZWxfY2FsY3VsYXRlX21jcl9zX3NzX3NlbGVjdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ID4gPiAgCXUzMiBzbGljZSA9IGZscyhzc2V1LT5z bGljZV9tYXNrKTsKPiA+ID4gPiA+ICAJdTMyIHN1YnNsaWNlID0gZmxzKHNzZXUtPnN1YnNsaWNl X21hc2tbc2xpY2VdKTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID09IDEwKQo+ID4gPiA+ID4gKwlpZiAoSVNfR0VOMTAoZGV2X3ByaXYpKQo+ID4gPiA+ID4g IAkJbWNyX3Nfc3Nfc2VsZWN0ID0gR0VOOF9NQ1JfU0xJQ0Uoc2xpY2UpIHwKPiA+ID4gPiA+ICAJ CQkJICBHRU44X01DUl9TVUJTTElDRShzdWJzbGljZSk7Cj4gPiA+ID4gPiAgCWVsc2UgaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMu Ywo+ID4gPiA+ID4gaW5kZXggYzkwOTU0Y2RmYjE1Li45NmY3MGQ4OTZjMTAgMTAwNjQ0Cj4gPiA+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gPiA+IEBAIC04NCw3ICs4 NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZmJjX2NhbGN1bGF0ZV9jZmJfc2l6ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiAgCWludCBsaW5lczsKPiA+ID4gPiA+ Cj4gPiA+ID4gPiAgCWludGVsX2ZiY19nZXRfcGxhbmVfc291cmNlX3NpemUoY2FjaGUsIE5VTEws ICZsaW5lcyk7Cj4gPiA+ID4gPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDcpCj4gPiA+ ID4gPiArCWlmIChJU19HRU43KGRldl9wcml2KSkKPiA+ID4gPiA+ICAJCWxpbmVzID0gbWluKGxp bmVzLCAyMDQ4KTsKPiA+ID4gPiA+ICAJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4 KQo+ID4gPiA+ID4gIAkJbGluZXMgPSBtaW4obGluZXMsIDI1NjApOwo+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCj4gPiA+ID4gPiBpbmRleCA2N2E0ZDA3MzUyOTEuLjM3OTM4NjZhOWVl NyAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK PiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gPiA+ IEBAIC00Njc2LDEzICs0Njc2LDEzIEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20o Y29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ID4gIAkJCXNl bGVjdGVkX3Jlc3VsdCA9IG1ldGhvZDI7Cj4gPiA+ID4gPiAgCQl9IGVsc2UgaWYgKGRkYl9hbGxv Y2F0aW9uID49Cj4gPiA+ID4gPiAgCQkJIGZpeGVkMTZfdG9fdTMyX3JvdW5kX3VwKHdwLT5wbGFu ZV9ibG9ja3NfcGVyX2xpbmUpKSB7Cj4gPiA+ID4gPiAtCQkJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPT0gOSAmJgo+ID4gPiA+ID4gKwkJCWlmIChJU19HRU45KGRldl9wcml2KSAmJgo+ID4gPiA+ ID4gIAkJCSAgICAhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gPiA+ID4gPiAgCQkJCXNlbGVj dGVkX3Jlc3VsdCA9IG1pbl9maXhlZDE2KG1ldGhvZDEsIG1ldGhvZDIpOwo+ID4gPiA+ID4gIAkJ CWVsc2UKPiA+ID4gPiA+ICAJCQkJc2VsZWN0ZWRfcmVzdWx0ID0gbWV0aG9kMjsKPiA+ID4gPiA+ ICAJCX0gZWxzZSBpZiAobGF0ZW5jeSA+PSB3cC0+bGluZXRpbWVfdXMpIHsKPiA+ID4gPiA+IC0J CQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA9PSA5ICYmCj4gPiA+ID4gPiArCQkJaWYgKElTX0dF TjkoZGV2X3ByaXYpICYmCj4gPiA+ID4gPiAgCQkJICAgICFJU19HRU1JTklMQUtFKGRldl9wcml2 KSkKPiA+ID4gPiA+ICAJCQkJc2VsZWN0ZWRfcmVzdWx0ID0gbWluX2ZpeGVkMTYobWV0aG9kMSwg bWV0aG9kMik7Cj4gPiA+ID4gPiAgCQkJZWxzZQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cHNyLmMKPiA+ID4gPiA+IGluZGV4IDQyM2NkZjg0MDU5Yy4uYmMyZDg4MzEzZWQwIDEwMDY0NAo+ ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiA+ID4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiA+ID4gPiBAQCAtNTc0 LDcgKzU3NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ID4gPiAgCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfZW5h YmxlZCkgewo+ID4gPiA+ID4gIAkJdTMyIGNoaWNrZW4gPSBJOTE1X1JFQUQoQ0hJQ0tFTl9UUkFO UyhjcHVfdHJhbnNjb2RlcikpOwo+ID4gPiA+ID4KPiA+ID4gPiA+IC0JCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID09IDkgJiYgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ID4gPiA+ID4gKwkJ aWYgKElTX0dFTjkoZGV2X3ByaXYpICYmICFJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPiA+ID4g PiA+ICAJCQljaGlja2VuIHw9IChQU1IyX1ZTQ19FTkFCTEVfUFJPR19IRUFERVIKPiA+ID4gPiA+ ICAJCQkJICAgfCBQU1IyX0FERF9WRVJUSUNBTF9MSU5FX0NPVU5UKTsKPiA+ID4gPiA+Cj4gPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gPiA+ID4gPiBpbmRl eCBmNmVjNDhhNzVhNjkuLmQzYTA4ZDBmMDJmZSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gPiA+ID4gPiBAQCAtOTMsMTEgKzkz LDExIEBAIGhhbmdjaGVja19hY3Rpb25fdG9fc3RyKGNvbnN0IGVudW0gaW50ZWxfZW5naW5lX2hh bmdjaGVja19hY3Rpb24gYSkKPiA+ID4gPiA+ICAjZGVmaW5lIEk5MTVfTUFYX1NVQlNMSUNFUyA4 Cj4gPiA+ID4gPgo+ID4gPiA+ID4gICNkZWZpbmUgaW5zdGRvbmVfc2xpY2VfbWFzayhkZXZfcHJp dl9fKSBcCj4gPiA+ID4gPiAtCShJTlRFTF9HRU4oZGV2X3ByaXZfXykgPT0gNyA/IFwKPiA+ID4g PiA+ICsJKElTX0dFTjcoZGV2X3ByaXZfXykgPyBcCj4gPiA+ID4gPiAgCSAxIDogSU5URUxfSU5G TyhkZXZfcHJpdl9fKS0+c3NldS5zbGljZV9tYXNrKQo+ID4gPiA+ID4KPiA+ID4gPiA+ICAjZGVm aW5lIGluc3Rkb25lX3N1YnNsaWNlX21hc2soZGV2X3ByaXZfXykgXAo+ID4gPiA+ID4gLQkoSU5U RUxfR0VOKGRldl9wcml2X18pID09IDcgPyBcCj4gPiA+ID4gPiArCShJU19HRU43KGRldl9wcml2 X18pID8gXAo+ID4gPiA+ID4gIAkgMSA6IElOVEVMX0lORk8oZGV2X3ByaXZfXyktPnNzZXUuc3Vi c2xpY2VfbWFza1swXSkKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgI2RlZmluZSBmb3JfZWFjaF9pbnN0 ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdl9fLCBzbGljZV9fLCBzdWJzbGljZV9fKSBcCj4g PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gPiA+ID4gaW5kZXggN2Nk NTllZWU1Y2FkLi40YzlmMGI3MTM4YjMgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+ID4gPiA+IEBAIC0xNzk4LDcgKzE3OTgsNyBAQCBzdGF0 aWMgYm9vbCBza2xfcGxhbmVfaGFzX3BsYW5hcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiA+ID4gPiAgCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19CUk9YVE9O KGRldl9wcml2KSkKPiA+ID4gPiA+ICAJCXJldHVybiBmYWxzZTsKPiA+ID4gPiA+Cj4gPiA+ID4g PiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYgIUlTX0dFTUlOSUxBS0UoZGV2X3By aXYpICYmIHBpcGUgPT0gUElQRV9DKQo+ID4gPiA+ID4gKwlpZiAoSVNfR0VOOShkZXZfcHJpdikg JiYgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpICYmIHBpcGUgPT0gUElQRV9DKQo+ID4gPiA+ID4g IAkJcmV0dXJuIGZhbHNlOwo+ID4gPiA+ID4KPiA+ID4gPiA+ICAJaWYgKHBsYW5lX2lkICE9IFBM QU5FX1BSSU1BUlkgJiYgcGxhbmVfaWQgIT0gUExBTkVfU1BSSVRFMCkKPiA+ID4gPiA+IC0tCj4g PiA+ID4gPiAyLjE5LjEKPiA+ID4gPiA+Cj4gPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dAo+ID4gPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+ ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiA+ID4gSW50ZWwKPiA+ Cj4gPiAtLQo+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiBJbnRlbAo+ID4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=