From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915: Yet another if/else sort of newer to older platforms. Date: Mon, 25 Feb 2019 11:08:37 -0800 Message-ID: <20190225190837.GL2855@intel.com> References: <20190222221112.9833-1-rodrigo.vivi@intel.com> <20190225163251.GE20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66C4E89B51 for ; Mon, 25 Feb 2019 19:08:38 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190225163251.GE20097@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBGZWIgMjUsIDIwMTkgYXQgMDY6MzI6NTFQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgRmViIDIyLCAyMDE5IGF0IDAyOjExOjEyUE0gLTA4MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLiBKdXN0IGEgcmVvcmcgdG8g bWF0Y2ggdGhlIHByZWZlcnJlZAo+ID4gYmVoYXZpb3IuCj4gPiAKPiA+IFdoZW4gcmViYXNpbmcg aW50ZXJuYWwgYnJhbmNoIG9uIHRvcCBvZiBsYXRlc3Qgc29ydCBJIG5vdGljZWQKPiA+IGZldyBt b3JlIGNhc2VzIHRoYXQgbmVlZHMgdG8gZ2V0IHJlb3JkZXJlZC4KPiA+IAo+ID4gTGV0J3MgZG8g aW4gYSBidW5kbGUgdGhpcyB0aW1lIGFuZCBob3BpbmcgdGhlcmUncyBubyBvdGhlcgo+ID4gbWlz c2luZyBwbGFjZXMuCj4gPiAKPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+ID4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgo+ID4gQ2M6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29t Pgo+ID4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t Pgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICB8 IDI0ICsrKystLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jICAgICAg ICAgfCA1MCArKysrKysrKystLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jZGNsay5jICAgICAgIHwgMzggKysrKysrKy0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jIHwgNjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4g PiAgNCBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKPiA+ IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiBpbmRleCBjNjM1NGY2Y2RiZGIuLjBlM2Q1 Y2YyYzRmOCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+IEBAIC0yMTksMjAg KzIxOSwyMCBAQCBpbnRlbF92aXJ0X2RldGVjdF9wY2goY29uc3Qgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ID4gIAkgKiBtYWtlIGFuIGVkdWNhdGVkIGd1ZXNzIGFzIHRvIHdo aWNoIFBDSCBpcyByZWFsbHkgdGhlcmUuCj4gPiAgCSAqLwo+ID4gIAo+ID4gLQlpZiAoSVNfR0VO KGRldl9wcml2LCA1KSkKPiA+IC0JCWlkID0gSU5URUxfUENIX0lCWF9ERVZJQ0VfSURfVFlQRTsK PiA+IC0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA2KSB8fCBJU19JVllCUklER0UoZGV2X3By aXYpKQo+ID4gLQkJaWQgPSBJTlRFTF9QQ0hfQ1BUX0RFVklDRV9JRF9UWVBFOwo+ID4gLQllbHNl IGlmIChJU19IU1dfVUxUKGRldl9wcml2KSB8fCBJU19CRFdfVUxUKGRldl9wcml2KSkKPiA+IC0J CWlkID0gSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRTsKPiA+IC0JZWxzZSBpZiAoSVNf SEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiA+IC0JCWlkID0g SU5URUxfUENIX0xQVF9ERVZJQ0VfSURfVFlQRTsKPiA+IC0JZWxzZSBpZiAoSVNfU0tZTEFLRShk ZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ID4gLQkJaWQgPSBJTlRFTF9QQ0hf U1BUX0RFVklDRV9JRF9UWVBFOwo+ID4gKwlpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikpCj4gPiAr CQlpZCA9IElOVEVMX1BDSF9JQ1BfREVWSUNFX0lEX1RZUEU7Cj4gPiAgCWVsc2UgaWYgKElTX0NP RkZFRUxBS0UoZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQo+ID4gIAkJaWQg PSBJTlRFTF9QQ0hfQ05QX0RFVklDRV9JRF9UWVBFOwo+ID4gLQllbHNlIGlmIChJU19JQ0VMQUtF KGRldl9wcml2KSkKPiA+IC0JCWlkID0gSU5URUxfUENIX0lDUF9ERVZJQ0VfSURfVFlQRTsKPiA+ ICsJZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYp KQo+ID4gKwkJaWQgPSBJTlRFTF9QQ0hfU1BUX0RFVklDRV9JRF9UWVBFOwo+ID4gKwllbHNlIGlm IChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ID4gKwkJ aWQgPSBJTlRFTF9QQ0hfTFBUX0RFVklDRV9JRF9UWVBFOwo+ID4gKwllbHNlIGlmIChJU19IU1df VUxUKGRldl9wcml2KSB8fCBJU19CRFdfVUxUKGRldl9wcml2KSkKPiA+ICsJCWlkID0gSU5URUxf UENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRTsKPiAKPiBHZW5lcmljIG1hdGNoIGJlZm9yZSB0aGUg bW9yZSBzcGVjaWZpYyBvbmUuIFRoYXQncyBub3QgZ29pbmcgdG8gd29yay4KCm9wcywgaW5kZWVk Li4uIHYyIGlzIGNvbWluZy4uLgoKPiAKPiA+ICsJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA2 KSB8fCBJU19JVllCUklER0UoZGV2X3ByaXYpKQo+ID4gKwkJaWQgPSBJTlRFTF9QQ0hfQ1BUX0RF VklDRV9JRF9UWVBFOwo+ID4gKwllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDUpKQo+ID4gKwkJ aWQgPSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFOwo+ID4gIAo+ID4gIAlpZiAoaWQpCj4g PiAgCQlEUk1fREVCVUdfS01TKCJBc3N1bWluZyBQQ0ggSUQgJTA0eFxuIiwgaWQpOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wZXJmLmMKPiA+IGluZGV4IDllYmY5OWYzZDhkMy4uNzJhOWEzNWI0MGUy IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4gPiBAQCAtMjg4MSwxMiArMjg4 MSwyNCBAQCB2b2lkIGk5MTVfcGVyZl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gPiAgCj4gPiAgCXN5c2ZzX2F0dHJfaW5pdCgmZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIpOwo+ID4gIAo+ID4gLQlpZiAoSVNfSEFT V0VMTChkZXZfcHJpdikpIHsKPiA+IC0JCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2hzdyhk ZXZfcHJpdik7Cj4gPiAtCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ID4g LQkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfYmR3KGRldl9wcml2KTsKPiA+IC0JfSBlbHNl IGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ID4gLQkJaTkxNV9wZXJmX2xvYWRfdGVz dF9jb25maWdfY2h2KGRldl9wcml2KTsKPiA+ICsJaWYgKElTX0lDRUxBS0UoZGV2X3ByaXYpKSB7 Cj4gPiArCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19pY2woZGV2X3ByaXYpOwo+ID4gKwl9 IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7Cj4gPiArCQlpOTE1X3BlcmZfbG9h ZF90ZXN0X2NvbmZpZ19jbmwoZGV2X3ByaXYpOwo+ID4gKwl9IGVsc2UgaWYgKElTX0NPRkZFRUxB S0UoZGV2X3ByaXYpKSB7Cj4gPiArCQlpZiAoSVNfQ0ZMX0dUMihkZXZfcHJpdikpCj4gPiArCQkJ aTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2ZsZ3QyKGRldl9wcml2KTsKPiA+ICsJCWlmIChJ U19DRkxfR1QzKGRldl9wcml2KSkKPiA+ICsJCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19j ZmxndDMoZGV2X3ByaXYpOwo+ID4gKwl9IGVsc2UgaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYp KSB7Cj4gPiArCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19nbGsoZGV2X3ByaXYpOwo+ID4g Kwl9IGVsc2UgaWYgKElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ID4gKwkJaWYgKElTX0tCTF9H VDIoZGV2X3ByaXYpKQo+ID4gKwkJCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2tibGd0Mihk ZXZfcHJpdik7Cj4gPiArCQllbHNlIGlmIChJU19LQkxfR1QzKGRldl9wcml2KSkKPiA+ICsJCQlp OTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19rYmxndDMoZGV2X3ByaXYpOwo+ID4gKwl9IGVsc2Ug aWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4gPiArCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2Nv bmZpZ19ieHQoZGV2X3ByaXYpOwo+ID4gIAl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYp KSB7Cj4gPiAgCQlpZiAoSVNfU0tMX0dUMihkZXZfcHJpdikpCj4gPiAgCQkJaTkxNV9wZXJmX2xv YWRfdGVzdF9jb25maWdfc2tsZ3QyKGRldl9wcml2KTsKPiA+IEBAIC0yODk0LDI1ICsyOTA2LDEz IEBAIHZvaWQgaTkxNV9wZXJmX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiA+ICAJCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDMoZGV2X3ByaXYp Owo+ID4gIAkJZWxzZSBpZiAoSVNfU0tMX0dUNChkZXZfcHJpdikpCj4gPiAgCQkJaTkxNV9wZXJm X2xvYWRfdGVzdF9jb25maWdfc2tsZ3Q0KGRldl9wcml2KTsKPiA+IC0JfSBlbHNlIGlmIChJU19C Uk9YVE9OKGRldl9wcml2KSkgewo+ID4gLQkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfYnh0 KGRldl9wcml2KTsKPiA+IC0JfSBlbHNlIGlmIChJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiA+ IC0JCWlmIChJU19LQkxfR1QyKGRldl9wcml2KSkKPiA+IC0JCQlpOTE1X3BlcmZfbG9hZF90ZXN0 X2NvbmZpZ19rYmxndDIoZGV2X3ByaXYpOwo+ID4gLQkJZWxzZSBpZiAoSVNfS0JMX0dUMyhkZXZf cHJpdikpCj4gPiAtCQkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QzKGRldl9wcml2 KTsKPiA+IC0JfSBlbHNlIGlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ID4gLQkJaTkx NV9wZXJmX2xvYWRfdGVzdF9jb25maWdfZ2xrKGRldl9wcml2KTsKPiA+IC0JfSBlbHNlIGlmIChJ U19DT0ZGRUVMQUtFKGRldl9wcml2KSkgewo+ID4gLQkJaWYgKElTX0NGTF9HVDIoZGV2X3ByaXYp KQo+ID4gLQkJCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NmbGd0MihkZXZfcHJpdik7Cj4g PiAtCQlpZiAoSVNfQ0ZMX0dUMyhkZXZfcHJpdikpCj4gPiAtCQkJaTkxNV9wZXJmX2xvYWRfdGVz dF9jb25maWdfY2ZsZ3QzKGRldl9wcml2KTsKPiA+IC0JfSBlbHNlIGlmIChJU19DQU5OT05MQUtF KGRldl9wcml2KSkgewo+ID4gLQkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY25sKGRldl9w cml2KTsKPiA+IC0JfSBlbHNlIGlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkgewo+ID4gLQkJaTkx NV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaWNsKGRldl9wcml2KTsKPiA+IC0JfQo+ID4gKwl9IGVs c2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gPiArCQlpOTE1X3BlcmZfbG9hZF90 ZXN0X2NvbmZpZ19jaHYoZGV2X3ByaXYpOwo+ID4gKwl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChk ZXZfcHJpdikpIHsKPiA+ICsJCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2JkdyhkZXZfcHJp dik7Cj4gPiArCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKPiA+ICsJCWk5MTVf cGVyZl9sb2FkX3Rlc3RfY29uZmlnX2hzdyhkZXZfcHJpdik7Cj4gPiArfQo+ID4gIAo+ID4gIAlp ZiAoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPT0gMCkKPiA+ICAJCWdvdG8gc3lz ZnNfZXJyb3I7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2Rj bGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPiA+IGluZGV4IDI2ZTAx YTg0NjVhZi4uNWQyNjY1MzgwMzZkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY2RjbGsuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2Rj bGsuYwo+ID4gQEAgLTI3NDQsMTggKzI3NDQsMTMgQEAgdm9pZCBpbnRlbF91cGRhdGVfcmF3Y2xr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAgKi8KPiA+ICB2b2lkIGlu dGVsX2luaXRfY2RjbGtfaG9va3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ID4gIHsKPiA+IC0JaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gPiAtCQlkZXZfcHJp di0+ZGlzcGxheS5zZXRfY2RjbGsgPSBjaHZfc2V0X2NkY2xrOwo+ID4gLQkJZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiA+IC0JCQl2bHZfbW9kZXNldF9jYWxjX2NkY2xr Owo+ID4gLQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7Cj4gPiAtCQlkZXZf cHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSB2bHZfc2V0X2NkY2xrOwo+ID4gLQkJZGV2X3ByaXYt PmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiA+IC0JCQl2bHZfbW9kZXNldF9jYWxjX2Nk Y2xrOwo+ID4gLQl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiA+IC0JCWRl dl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9IGJkd19zZXRfY2RjbGs7Cj4gPiArCWlmIChJU19J Q0VMQUtFKGRldl9wcml2KSkgewo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0g aWNsX3NldF9jZGNsazsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNs ayA9IGljbF9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiArCX0gZWxzZSBpZiAoSVNfQ0FOTk9OTEFL RShkZXZfcHJpdikpIHsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9IGNubF9z ZXRfY2RjbGs7Cj4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ ID4gLQkJCWJkd19tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiArCQkJY25sX21vZGVzZXRfY2FsY19j ZGNsazsKPiA+ICAJfSBlbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewo+ID4gIAkJZGV2 X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gYnh0X3NldF9jZGNsazsKPiA+ICAJCWRldl9wcml2 LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4gPiBAQCAtMjc2NCwyMyArMjc1OSwyOCBA QCB2b2lkIGludGVsX2luaXRfY2RjbGtfaG9va3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gc2tsX3NldF9jZGNs azsKPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4gPiAgCQkJ c2tsX21vZGVzZXRfY2FsY19jZGNsazsKPiA+IC0JfSBlbHNlIGlmIChJU19DQU5OT05MQUtFKGRl dl9wcml2KSkgewo+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gY25sX3NldF9j ZGNsazsKPiA+ICsJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gPiArCQlk ZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBiZHdfc2V0X2NkY2xrOwo+ID4gIAkJZGV2X3By aXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiA+IC0JCQljbmxfbW9kZXNldF9jYWxj X2NkY2xrOwo+ID4gLQl9IGVsc2UgaWYgKElTX0lDRUxBS0UoZGV2X3ByaXYpKSB7Cj4gPiAtCQlk ZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBpY2xfc2V0X2NkY2xrOwo+ID4gLQkJZGV2X3By aXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0gaWNsX21vZGVzZXRfY2FsY19jZGNsazsK PiA+ICsJCQliZHdfbW9kZXNldF9jYWxjX2NkY2xrOwo+ID4gKwl9IGVsc2UgaWYgKElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKSB7Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBj aHZfc2V0X2NkY2xrOwo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xr ID0KPiA+ICsJCQl2bHZfbW9kZXNldF9jYWxjX2NkY2xrOwo+ID4gKwl9IGVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpKSB7Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsg PSB2bHZfc2V0X2NkY2xrOwo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2Nk Y2xrID0KPiA+ICsJCQl2bHZfbW9kZXNldF9jYWxjX2NkY2xrOwo+ID4gIAl9Cj4gPiAgCj4gPiAg CWlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkKPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9j ZGNsayA9IGljbF9nZXRfY2RjbGs7Cj4gPiAgCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3By aXYpKQo+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gY25sX2dldF9jZGNsazsK PiA+IC0JZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCj4gPiAtCQlkZXZfcHJpdi0+ZGlz cGxheS5nZXRfY2RjbGsgPSBza2xfZ2V0X2NkY2xrOwo+ID4gIAllbHNlIGlmIChJU19HRU45X0xQ KGRldl9wcml2KSkKPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IGJ4dF9nZXRf Y2RjbGs7Cj4gPiArCWVsc2UgaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+ID4gKwkJZGV2X3By aXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gc2tsX2dldF9jZGNsazsKPiA+ICAJZWxzZSBpZiAoSVNf QlJPQURXRUxMKGRldl9wcml2KSkKPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9 IGJkd19nZXRfY2RjbGs7Cj4gPiAgCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCj4gPiBpbmRleCA3NDNjZjVi MDAxNTUuLjNlODEzOGI2NjE5MSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3dvcmthcm91bmRzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3dvcmthcm91bmRzLmMKPiA+IEBAIC04NjIsMjYgKzg2MiwyNiBAQCBpY2xfZ3Rfd29ya2Fyb3Vu ZHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfd2FfbGlz dCAqd2FsKQo+ID4gIHN0YXRpYyB2b2lkCj4gPiAgZ3RfaW5pdF93b3JrYXJvdW5kcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQo+ID4gIHsK PiA+IC0JaWYgKElOVEVMX0dFTihpOTE1KSA8IDgpCj4gPiArCWlmIChJU19JQ0VMQUtFKGk5MTUp KQo+ID4gKwkJaWNsX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+ICsJZWxzZSBp ZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkKPiA+ICsJCWNubF9ndF93b3JrYXJvdW5kc19pbml0KGk5 MTUsIHdhbCk7Cj4gPiArCWVsc2UgaWYgKElTX0NPRkZFRUxBS0UoaTkxNSkpCj4gPiArCQljZmxf Z3Rfd29ya2Fyb3VuZHNfaW5pdChpOTE1LCB3YWwpOwo+ID4gKwllbHNlIGlmIChJU19HRU1JTklM QUtFKGk5MTUpKQo+ID4gKwkJZ2xrX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+ ICsJZWxzZSBpZiAoSVNfS0FCWUxBS0UoaTkxNSkpCj4gPiArCQlrYmxfZ3Rfd29ya2Fyb3VuZHNf aW5pdChpOTE1LCB3YWwpOwo+ID4gKwllbHNlIGlmIChJU19CUk9YVE9OKGk5MTUpKQo+ID4gKwkJ Ynh0X2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+ICsJZWxzZSBpZiAoSVNfU0tZ TEFLRShpOTE1KSkKPiA+ICsJCXNrbF9ndF93b3JrYXJvdW5kc19pbml0KGk5MTUsIHdhbCk7Cj4g PiArCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoaTkxNSkpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCWVs c2UgaWYgKElTX0JST0FEV0VMTChpOTE1KSkKPiA+ICAJCXJldHVybjsKPiA+IC0JZWxzZSBpZiAo SVNfQ0hFUlJZVklFVyhpOTE1KSkKPiA+ICsJZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpIDwgOCkK PiA+ICAJCXJldHVybjsKPiAKPiBlbHNlIGlmIChnZW4gPj0gOCkKPiAJTUlTU0lOR19DQVNFKC4u Lik7Cj4gPwoKaG1tLi4uIEkgYWN0dWFsbHkgd2FudCB0byByZW1vdmUgdGhlIG1pc3NpbmcgY2Fz ZXMKaW4gYSBmb2xsb3ctdXAgYWZ0ZXIgSSBtYWtlIHRoZSBzdGFuZGFyZCBiZWhhdmlvciBvZgoK aWYgKGdlbiA+PSBsYXN0LWtub3duKQogICAvL3VzZSBsYXRlc3Qga25vd24gY29kZS4KZWxzZSBp ZiAuLi4KCj4gCj4gPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoaTkxNSkpCj4gPiAtCQlza2xfZ3Rf d29ya2Fyb3VuZHNfaW5pdChpOTE1LCB3YWwpOwo+ID4gLQllbHNlIGlmIChJU19CUk9YVE9OKGk5 MTUpKQo+ID4gLQkJYnh0X2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+IC0JZWxz ZSBpZiAoSVNfS0FCWUxBS0UoaTkxNSkpCj4gPiAtCQlrYmxfZ3Rfd29ya2Fyb3VuZHNfaW5pdChp OTE1LCB3YWwpOwo+ID4gLQllbHNlIGlmIChJU19HRU1JTklMQUtFKGk5MTUpKQo+ID4gLQkJZ2xr X2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+IC0JZWxzZSBpZiAoSVNfQ09GRkVF TEFLRShpOTE1KSkKPiA+IC0JCWNmbF9ndF93b3JrYXJvdW5kc19pbml0KGk5MTUsIHdhbCk7Cj4g PiAtCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoaTkxNSkpCj4gPiAtCQljbmxfZ3Rfd29ya2Fyb3Vu ZHNfaW5pdChpOTE1LCB3YWwpOwo+ID4gLQllbHNlIGlmIChJU19JQ0VMQUtFKGk5MTUpKQo+ID4g LQkJaWNsX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+ICAJZWxzZQo+ID4gIAkJ TUlTU0lOR19DQVNFKElOVEVMX0dFTihpOTE1KSk7Cj4gPiAgfQo+ID4gQEAgLTEwNjMsMjYgKzEw NjMsMjYgQEAgdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF93aGl0ZWxpc3Qoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ID4gIAo+ID4gIAl3YV9pbml0X3N0YXJ0KHcsICJ3aGl0ZWxpc3Qi KTsKPiA+ICAKPiA+IC0JaWYgKElOVEVMX0dFTihpOTE1KSA8IDgpCj4gPiArCWlmIChJU19JQ0VM QUtFKGk5MTUpKQo+ID4gKwkJaWNsX3doaXRlbGlzdF9idWlsZCh3KTsKPiA+ICsJZWxzZSBpZiAo SVNfQ0FOTk9OTEFLRShpOTE1KSkKPiA+ICsJCWNubF93aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiAr CWVsc2UgaWYgKElTX0NPRkZFRUxBS0UoaTkxNSkpCj4gPiArCQljZmxfd2hpdGVsaXN0X2J1aWxk KHcpOwo+ID4gKwllbHNlIGlmIChJU19HRU1JTklMQUtFKGk5MTUpKQo+ID4gKwkJZ2xrX3doaXRl bGlzdF9idWlsZCh3KTsKPiA+ICsJZWxzZSBpZiAoSVNfS0FCWUxBS0UoaTkxNSkpCj4gPiArCQlr Ymxfd2hpdGVsaXN0X2J1aWxkKHcpOwo+ID4gKwllbHNlIGlmIChJU19CUk9YVE9OKGk5MTUpKQo+ ID4gKwkJYnh0X3doaXRlbGlzdF9idWlsZCh3KTsKPiA+ICsJZWxzZSBpZiAoSVNfU0tZTEFLRShp OTE1KSkKPiA+ICsJCXNrbF93aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiArCWVsc2UgaWYgKElTX0NI RVJSWVZJRVcoaTkxNSkpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCWVsc2UgaWYgKElTX0JST0FEV0VM TChpOTE1KSkKPiA+ICAJCXJldHVybjsKPiA+IC0JZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhpOTE1 KSkKPiA+ICsJZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpIDwgOCkKPiA+ICAJCXJldHVybjsKPiA+ IC0JZWxzZSBpZiAoSVNfU0tZTEFLRShpOTE1KSkKPiA+IC0JCXNrbF93aGl0ZWxpc3RfYnVpbGQo dyk7Cj4gPiAtCWVsc2UgaWYgKElTX0JST1hUT04oaTkxNSkpCj4gPiAtCQlieHRfd2hpdGVsaXN0 X2J1aWxkKHcpOwo+ID4gLQllbHNlIGlmIChJU19LQUJZTEFLRShpOTE1KSkKPiA+IC0JCWtibF93 aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiAtCWVsc2UgaWYgKElTX0dFTUlOSUxBS0UoaTkxNSkpCj4g PiAtCQlnbGtfd2hpdGVsaXN0X2J1aWxkKHcpOwo+ID4gLQllbHNlIGlmIChJU19DT0ZGRUVMQUtF KGk5MTUpKQo+ID4gLQkJY2ZsX3doaXRlbGlzdF9idWlsZCh3KTsKPiA+IC0JZWxzZSBpZiAoSVNf Q0FOTk9OTEFLRShpOTE1KSkKPiA+IC0JCWNubF93aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiAtCWVs c2UgaWYgKElTX0lDRUxBS0UoaTkxNSkpCj4gPiAtCQlpY2xfd2hpdGVsaXN0X2J1aWxkKHcpOwo+ ID4gIAllbHNlCj4gPiAgCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGk5MTUpKTsKPiA+ICAKPiA+ IC0tIAo+ID4gMi4yMC4xCj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4