From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v3 3/3] drm/i915: merge gen checks to use range Date: Wed, 12 Dec 2018 17:01:48 -0800 Message-ID: <20181213010148.GB10748@intel.com> References: <20181206061144.16235-1-lucas.demarchi@intel.com> <20181206061144.16235-4-lucas.demarchi@intel.com> <87lg4w5dwy.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E1A46EBFB for ; Thu, 13 Dec 2018 01:01:49 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87lg4w5dwy.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBEZWMgMTEsIDIwMTggYXQgMDQ6MzU6NTdQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gV2VkLCAwNSBEZWMgMjAxOCwgTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNo aUBpbnRlbC5jb20+IHdyb3RlOgo+ID4gSW5zdGVhZCBvZiB1c2luZyBJU19HRU4oKSBmb3IgY29u c2VjdXRpdmUgZ2VuIGNoZWNrcywgbGV0J3MgcGFzcyB0aGUKPiA+IHJhbmdlIHRvIElTX0dFTl9S QU5HRSgpLiBCeSBjb2RlIGluc3BlY3Rpb24gdGhlc2Ugd2VyZSB0aGUgcmFuZ2VzIGRlZW1lZAo+ ID4gbmVjZXNzYXJ5IGZvciBzcGF0Y2g6Cj4gPgo+ID4gQEAKPiA+IGV4cHJlc3Npb24gZTsKPiA+ IEBACj4gPiAoCj4gPiAtIElTX0dFTihlLCAzKSB8fCBJU19HRU4oZSwgMikKPiA+ICsgSVNfR0VO X1JBTkdFKGUsIDIsIDMpCj4gPiB8Cj4gPiAtIElTX0dFTihlLCAzKSB8fCBJU19HRU4oZSwgNCkK PiA+ICsgSVNfR0VOX1JBTkdFKGUsIDMsIDQpCj4gPiB8Cj4gPiAtIElTX0dFTihlLCA1KSB8fCBJ U19HRU4oZSwgNikKPiA+ICsgSVNfR0VOX1JBTkdFKGUsIDUsIDYpCj4gPiB8Cj4gPiAtIElTX0dF TihlLCA2KSB8fCBJU19HRU4oZSwgNykKPiA+ICsgSVNfR0VOX1JBTkdFKGUsIDYsIDcpCj4gPiB8 Cj4gPiAtIElTX0dFTihlLCA3KSB8fCBJU19HRU4oZSwgOCkKPiA+ICsgSVNfR0VOX1JBTkdFKGUs IDcsIDgpCj4gPiB8Cj4gPiAtIElTX0dFTihlLCA4KSB8fCBJU19HRU4oZSwgOSkKPiA+ICsgSVNf R0VOX1JBTkdFKGUsIDgsIDkpCj4gPiB8Cj4gPiAtIElTX0dFTihlLCAxMCkgfHwgSVNfR0VOKGUs IDkpCj4gPiArIElTX0dFTl9SQU5HRShlLCA5LCAxMCkKPiA+IHwKPiA+IC0gSVNfR0VOKGUsIDkp IHx8IElTX0dFTihlLCAxMCkKPiA+ICsgSVNfR0VOX1JBTkdFKGUsIDksIDEwKQo+ID4gKQo+ID4K PiA+IEFmdGVyIGNvbnZlcnNpb24sIGNoZWNraW5nIHdlIGRvbid0IGhhdmUgYW55IG1pc3Npbmcg SVNfR0VOX1JBTkdFKCkgfHwKPiA+IElTX0dFTigpIHdhcyBhbHNvIGRvbmUuCj4gPgo+ID4gU2ln bmVkLW9mZi1ieTogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+Cj4g Cj4gU2hvdWxkJ3ZlIGp1c3QgbG9va2VkIGF0IHRoZSB3aG9sZSBzZXJpZXMgYmVmb3JlIGNvbW1l bnRpbmcgb24gdGhlCj4gb3RoZXJzLiBJdCdzIGFsbAo+IAo+IFJldmlld2VkLWJ5OiBKYW5pIE5p a3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgoKVGhhbmtzLgpQdXNoZWQuCgo+IAo+IAo+ID4g LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgNiAr KystLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAy ICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAgICAgIHwgMiAr LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jICAgICAgICAgICB8IDIgKy0K PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jICAgfCAyICstCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgIHwgMiArLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICB8IDIgKy0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMgfCAyICstCj4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYyAgICAgIHwgNCArKy0tCj4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgICAgICAgIHwgNiArKystLS0KPiA+ICAx MCBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKPiA+Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gaW5kZXggNTNlM2Y1N2ExM2YzLi4z M2ZmNzVjNmE0YTMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ IEBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgaW50IGk5MTVfc3dpenpsZV9pbmZvKHN0cnVj dCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiA+ICAJc2VxX3ByaW50ZihtLCAiYml0NiBzd2l6 emxlIGZvciBZLXRpbGluZyA9ICVzXG4iLAo+ID4gIAkJICAgc3dpenpsZV9zdHJpbmcoZGV2X3By aXYtPm1tLmJpdF82X3N3aXp6bGVfeSkpOwo+ID4gIAo+ID4gLQlpZiAoSVNfR0VOKGRldl9wcml2 LCAzKSB8fCBJU19HRU4oZGV2X3ByaXYsIDQpKSB7Cj4gPiArCWlmIChJU19HRU5fUkFOR0UoZGV2 X3ByaXYsIDMsIDQpKSB7Cj4gPiAgCQlzZXFfcHJpbnRmKG0sICJEREMgPSAweCUwOHhcbiIsCj4g PiAgCQkJICAgSTkxNV9SRUFEKERDQykpOwo+ID4gIAkJc2VxX3ByaW50ZihtLCAiRERDMiA9IDB4 JTA4eFxuIiwKPiA+IEBAIC00MjY4LDcgKzQyNjgsNyBAQCBpOTE1X2NhY2hlX3NoYXJpbmdfZ2V0 KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkYXRhOwo+ID4gIAl1MzIgc25wY3I7Cj4gPiAgCj4gPiAtCWlmICghKElTX0dFTihk ZXZfcHJpdiwgNikgfHwgSVNfR0VOKGRldl9wcml2LCA3KSkpCj4gPiArCWlmICghKElTX0dFTl9S QU5HRShkZXZfcHJpdiwgNiwgNykpKQo+ID4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiAgCj4gPiAg CWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiA+IEBAIC00Mjg4LDcgKzQyODgsNyBA QCBpOTE1X2NhY2hlX3NoYXJpbmdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRhdGE7Cj4gPiAgCXUzMiBzbnBjcjsKPiA+ ICAKPiA+IC0JaWYgKCEoSVNfR0VOKGRldl9wcml2LCA2KSB8fCBJU19HRU4oZGV2X3ByaXYsIDcp KSkKPiA+ICsJaWYgKCEoSVNfR0VOX1JBTkdFKGRldl9wcml2LCA2LCA3KSkpCj4gPiAgCQlyZXR1 cm4gLUVOT0RFVjsKPiA+ICAKPiA+ICAJaWYgKHZhbCA+IDMpCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmMKPiA+IGluZGV4IGNjZmQ5MWM3MjQ3Ny4uNTgxYTQwYWMzNTkxIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ID4gQEAgLTE3NTMs NyArMTc1Myw3IEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfcmVnX3N0YXRlKHN0cnVjdCBpOTE1X2dw dV9zdGF0ZSAqZXJyb3IpCj4gPiAgCQllcnJvci0+Y2NpZCA9IEk5MTVfUkVBRChDQ0lEKTsKPiA+ ICAKPiA+ICAJLyogMzogRmVhdHVyZSBzcGVjaWZpYyByZWdpc3RlcnMgKi8KPiA+IC0JaWYgKElT X0dFTihkZXZfcHJpdiwgNikgfHwgSVNfR0VOKGRldl9wcml2LCA3KSkgewo+ID4gKwlpZiAoSVNf R0VOX1JBTkdFKGRldl9wcml2LCA2LCA3KSkgewo+ID4gIAkJZXJyb3ItPmdhbV9lY29jaGsgPSBJ OTE1X1JFQUQoR0FNX0VDT0NISyk7Cj4gPiAgCQllcnJvci0+Z2FjX2VjbyA9IEk5MTVfUkVBRChH QUNfRUNPX0JJVFMpOwo+ID4gIAl9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ID4gaW5k ZXggNmM3OTkyMzIwNDQzLi40Mjg4YzBlMDJmMGMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wZXJmLmMKPiA+IEBAIC0zNDE1LDcgKzM0MTUsNyBAQCB2b2lkIGk5MTVfcGVyZl9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAJCWRldl9wcml2LT5wZXJmLm9h Lm9wcy5yZWFkID0gZ2VuOF9vYV9yZWFkOwo+ID4gIAkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9h X2h3X3RhaWxfcmVhZCA9IGdlbjhfb2FfaHdfdGFpbF9yZWFkOwo+ID4gIAo+ID4gLQkJaWYgKElT X0dFTihkZXZfcHJpdiwgOCkgfHwgSVNfR0VOKGRldl9wcml2LCA5KSkgewo+ID4gKwkJaWYgKElT X0dFTl9SQU5HRShkZXZfcHJpdiwgOCwgOSkpIHsKPiA+ICAJCQlkZXZfcHJpdi0+cGVyZi5vYS5v cHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9Cj4gPiAgCQkJCWdlbjdfaXNfdmFsaWRfYl9jb3Vu dGVyX2FkZHI7Cj4gPiAgCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX211eF9yZWcg PQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiA+IGluZGV4IGJmNGZkNzM5YjY4Yy4uMGE0 MWU1OGQ2MWRlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0 LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gPiBAQCAtMzIy LDcgKzMyMiw3IEBAIGludGVsX2NydF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCj4gPiAgCQkgKiBEQUMgbGltaXQgc3VwcG9zZWRseSAzNTUgTUh6Lgo+ID4gIAkJ ICovCj4gPiAgCQltYXhfY2xvY2sgPSAyNzAwMDA7Cj4gPiAtCWVsc2UgaWYgKElTX0dFTihkZXZf cHJpdiwgMykgfHwgSVNfR0VOKGRldl9wcml2LCA0KSkKPiA+ICsJZWxzZSBpZiAoSVNfR0VOX1JB TkdFKGRldl9wcml2LCAzLCA0KSkKPiA+ICAJCW1heF9jbG9jayA9IDQwMDAwMDsKPiA+ICAJZWxz ZQo+ID4gIAkJbWF4X2Nsb2NrID0gMzUwMDAwOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5jCj4gPiBpbmRleCAzMzI3OTAyNzllMWQuLmRjNGZhODNlMjZlZiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiA+IEBAIC03 ODcsNyArNzg3LDcgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQoc3RydWN0 IGludGVsX2RldmljZV9pbmZvICppbmZvKQo+ID4gIAkJRFJNX0lORk8oIkRpc3BsYXkgZGlzYWJs ZWQgKG1vZHVsZSBwYXJhbWV0ZXIpXG4iKTsKPiA+ICAJCWluZm8tPm51bV9waXBlcyA9IDA7Cj4g PiAgCX0gZWxzZSBpZiAoSEFTX0RJU1BMQVkoZGV2X3ByaXYpICYmCj4gPiAtCQkgICAoSVNfR0VO KGRldl9wcml2LCA3KSB8fCBJU19HRU4oZGV2X3ByaXYsIDgpKSAmJgo+ID4gKwkJICAgKElTX0dF Tl9SQU5HRShkZXZfcHJpdiwgNywgOCkpICYmCj4gPiAgCQkgICBIQVNfUENIX1NQTElUKGRldl9w cml2KSkgewo+ID4gIAkJdTMyIGZ1c2Vfc3RyYXAgPSBJOTE1X1JFQUQoRlVTRV9TVFJBUCk7Cj4g PiAgCQl1MzIgc2Z1c2Vfc3RyYXAgPSBJOTE1X1JFQUQoU0ZVU0VfU1RSQVApOwo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggMDdkZGIwNmZlYzY1Li5hNTgxNmJj NGQwOTQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAg LTEwODE3LDcgKzEwODE3LDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXQKPiA+ICAJICogdGhl IHcvYSBvbiBhbGwgdGhyZWUgcGxhdGZvcm1zLgo+ID4gIAkgKi8KPiA+ICAJaWYgKHBsYW5lLT5p ZCA9PSBQTEFORV9TUFJJVEUwICYmCj4gPiAtCSAgICAoSVNfR0VOKGRldl9wcml2LCA1KSB8fCBJ U19HRU4oZGV2X3ByaXYsIDYpIHx8Cj4gPiArCSAgICAoSVNfR0VOX1JBTkdFKGRldl9wcml2LCA1 LCA2KSB8fAo+ID4gIAkgICAgIElTX0lWWUJSSURHRShkZXZfcHJpdikpICYmCj4gPiAgCSAgICAo dHVybl9vbiB8fCAoIW5lZWRzX3NjYWxpbmcob2xkX3BsYW5lX3N0YXRlKSAmJgo+ID4gIAkJCSBu ZWVkc19zY2FsaW5nKHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKSkpKSkKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gPiBpbmRleCA4ZmY3OTRkYjc4ODEu LjY2ZDBhZDljMzZjNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYwo+ID4gQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9pbml0X2dsb2Jh bF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBzZXFubykKPiA+ICAJ ICogdGhlIHNlbWFwaG9yZSB2YWx1ZSwgdGhlbiB3aGVuIHRoZSBzZXFubyBtb3ZlcyBiYWNrd2Fy ZHMgYWxsCj4gPiAgCSAqIGZ1dHVyZSB3YWl0cyB3aWxsIGNvbXBsZXRlIGluc3RhbnRseSAoY2F1 c2luZyByZW5kZXJpbmcgY29ycnVwdGlvbikuCj4gPiAgCSAqLwo+ID4gLQlpZiAoSVNfR0VOKGRl dl9wcml2LCA2KSB8fCBJU19HRU4oZGV2X3ByaXYsIDcpKSB7Cj4gPiArCWlmIChJU19HRU5fUkFO R0UoZGV2X3ByaXYsIDYsIDcpKSB7Cj4gPiAgCQlJOTE1X1dSSVRFKFJJTkdfU1lOQ18wKGVuZ2lu ZS0+bW1pb19iYXNlKSwgMCk7Cj4gPiAgCQlJOTE1X1dSSVRFKFJJTkdfU1lOQ18xKGVuZ2luZS0+ bW1pb19iYXNlKSwgMCk7Cj4gPiAgCQlpZiAoSEFTX1ZFQk9YKGRldl9wcml2KSkKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKPiA+IGluZGV4IGZmMjc0M2Nj YmVjZS4uOWIzOTk3NWM4Mzg5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmlmb191bmRlcnJ1bi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9maWZvX3VuZGVycnVuLmMKPiA+IEBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGJvb2wgX19p bnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gPiAgCj4gPiAgCWlmIChIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiA+ICAJCWk5 eHhfc2V0X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwgcGlwZSwgZW5hYmxlLCBvbGQpOwo+ ID4gLQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDUpIHx8IElTX0dFTihkZXZfcHJpdiwgNikp Cj4gPiArCWVsc2UgaWYgKElTX0dFTl9SQU5HRShkZXZfcHJpdiwgNSwgNikpCj4gPiAgCQlpcm9u bGFrZV9zZXRfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2LCBwaXBlLCBlbmFibGUpOwo+ID4g IAllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDcpKQo+ID4gIAkJaXZ5YnJpZGdlX3NldF9maWZv X3VuZGVycnVuX3JlcG9ydGluZyhkZXYsIHBpcGUsIGVuYWJsZSwgb2xkKTsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYwo+ID4gaW5kZXggOWU4NzBjYWY4MTA0Li5iZGFiY2Zh YjgwOTAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2Ny Yy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPiBA QCAtNDMzLDcgKzQzMyw3IEBAIHN0YXRpYyBpbnQgZ2V0X25ld19jcmNfY3RsX3JlZyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQlyZXR1cm4gaTl4eF9waXBlX2NyY19j dGxfcmVnKGRldl9wcml2LCBwaXBlLCBzb3VyY2UsIHZhbCk7Cj4gPiAgCWVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gIAkJcmV0 dXJuIHZsdl9waXBlX2NyY19jdGxfcmVnKGRldl9wcml2LCBwaXBlLCBzb3VyY2UsIHZhbCk7Cj4g PiAtCWVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgNSkgfHwgSVNfR0VOKGRldl9wcml2LCA2KSkK PiA+ICsJZWxzZSBpZiAoSVNfR0VOX1JBTkdFKGRldl9wcml2LCA1LCA2KSkKPiA+ICAJCXJldHVy biBpbGtfcGlwZV9jcmNfY3RsX3JlZyhzb3VyY2UsIHZhbCk7Cj4gPiAgCWVsc2UKPiA+ICAJCXJl dHVybiBpdmJfcGlwZV9jcmNfY3RsX3JlZyhkZXZfcHJpdiwgcGlwZSwgc291cmNlLCB2YWwsIHNl dF93YSk7Cj4gPiBAQCAtNTUwLDcgKzU1MCw3IEBAIGludGVsX2lzX3ZhbGlkX2NyY19zb3VyY2Uo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJcmV0dXJuIGk5eHhfY3Jj X3NvdXJjZV92YWxpZChkZXZfcHJpdiwgc291cmNlKTsKPiA+ICAJZWxzZSBpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiAgCQlyZXR1cm4g dmx2X2NyY19zb3VyY2VfdmFsaWQoZGV2X3ByaXYsIHNvdXJjZSk7Cj4gPiAtCWVsc2UgaWYgKElT X0dFTihkZXZfcHJpdiwgNSkgfHwgSVNfR0VOKGRldl9wcml2LCA2KSkKPiA+ICsJZWxzZSBpZiAo SVNfR0VOX1JBTkdFKGRldl9wcml2LCA1LCA2KSkKPiA+ICAJCXJldHVybiBpbGtfY3JjX3NvdXJj ZV92YWxpZChkZXZfcHJpdiwgc291cmNlKTsKPiA+ICAJZWxzZQo+ID4gIAkJcmV0dXJuIGl2Yl9j cmNfc291cmNlX3ZhbGlkKGRldl9wcml2LCBzb3VyY2UpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdW5jb3JlLmMKPiA+IGluZGV4IGM2ZWIwNTNhOGZhZC4uZWM2ZGRlMmU1OWViIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gPiBAQCAtNTI4LDcgKzUyOCw3IEBA IGNoZWNrX2Zvcl91bmNsYWltZWRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gPiAgCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRl dl9wcml2KSkKPiA+ICAJCXJldCB8PSB2bHZfY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGRldl9w cml2KTsKPiA+ICAKPiA+IC0JaWYgKElTX0dFTihkZXZfcHJpdiwgNikgfHwgSVNfR0VOKGRldl9w cml2LCA3KSkKPiA+ICsJaWYgKElTX0dFTl9SQU5HRShkZXZfcHJpdiwgNiwgNykpCj4gPiAgCQly ZXQgfD0gZ2VuNl9jaGVja19mb3JfZmlmb19kZWJ1ZyhkZXZfcHJpdik7Cj4gPiAgCj4gPiAgCXJl dHVybiByZXQ7Cj4gPiBAQCAtNTU2LDcgKzU1Niw3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfdW5j b3JlX2Vhcmx5X3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ ICAJCWRldl9wcml2LT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9nZXQoZGV2X3ByaXYsCj4gPiAg CQkJCQkJICAgICAgcmVzdG9yZV9mb3JjZXdha2UpOwo+ID4gIAo+ID4gLQkJaWYgKElTX0dFTihk ZXZfcHJpdiwgNikgfHwgSVNfR0VOKGRldl9wcml2LCA3KSkKPiA+ICsJCWlmIChJU19HRU5fUkFO R0UoZGV2X3ByaXYsIDYsIDcpKQo+ID4gIAkJCWRldl9wcml2LT51bmNvcmUuZmlmb19jb3VudCA9 Cj4gPiAgCQkJCWZpZm9fZnJlZV9lbnRyaWVzKGRldl9wcml2KTsKPiA+ICAJCXNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrKTsKPiA+IEBAIC0xNDM3LDcgKzE0MzcsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF91bmNvcmVfZndfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiA+ICAJCQkJICAgICAgIEZPUkNFV0FLRV9NRURJQV9WRUJPWF9H RU4xMShpKSwKPiA+ICAJCQkJICAgICAgIEZPUkNFV0FLRV9BQ0tfTUVESUFfVkVCT1hfR0VOMTEo aSkpOwo+ID4gIAkJfQo+ID4gLQl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgMTApIHx8IElT X0dFTihkZXZfcHJpdiwgOSkpIHsKPiA+ICsJfSBlbHNlIGlmIChJU19HRU5fUkFOR0UoZGV2X3By aXYsIDksIDEwKSkgewo+ID4gIAkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dl dCA9Cj4gPiAgCQkJZndfZG9tYWluc19nZXRfd2l0aF9mYWxsYmFjazsKPiA+ICAJCWRldl9wcml2 LT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9wdXQgPSBmd19kb21haW5zX3B1dDsKPiAKPiAtLSAK PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=