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: Fri, 1 Mar 2019 09:24:18 -0800 Message-ID: <20190301172418.GA8482@intel.com> References: <20190225163251.GE20097@intel.com> <20190225191130.11215-1-rodrigo.vivi@intel.com> <20190228231939.6a4ty5ojyfncrs5n@ldmartin-desk.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id B790E6E2A3 for ; Fri, 1 Mar 2019 17:24:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190228231939.6a4ty5ojyfncrs5n@ldmartin-desk.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMjgsIDIwMTkgYXQgMDM6MTk6MzlQTSAtMDgwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIE1vbiwgRmViIDI1LCAyMDE5IGF0IDExOjExOjMwQU0gLTA4MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLiBKdXN0IGEgcmVvcmcgdG8g bWF0Y2ggdGhlIHByZWZlcnJlZAo+ID4gYmVoYXZpb3IuCj4gPiAKPiA+IFdoZW4gcmViYXNpbmcg aW50ZXJuYWwgYnJhbmNoIG9uIHRvcCBvZiBsYXRlc3Qgc29ydCBJIG5vdGljZWQKPiA+IGZldyBt b3JlIGNhc2VzIHRoYXQgbmVlZHMgdG8gZ2V0IHJlb3JkZXJlZC4KPiA+IAo+ID4gTGV0J3MgZG8g aW4gYSBidW5kbGUgdGhpcyB0aW1lIGFuZCBob3BpbmcgdGhlcmUncyBubyBvdGhlcgo+ID4gbWlz c2luZyBwbGFjZXMuCj4gPiAKPiA+IHYyOiBDaGVjayBmb3IgSFNXL0JEVyBVTFQgYmVmb3JlIGdl bmVyaWMgSVNfSEFTV0VMTCBvcgo+ID4gICAgSVNfQlJPQURXRUxMIG9yIGl0IGRvZXNuJ3Qgd29y ayBhcyBwb2ludGVkIGJ5IFZpbGxlLgo+ID4gICAgQnV0IGFsc28gVUxUIGNhbWUgYWZ0ZXJ3YXJk cyBhbnl3YXkuCj4gPiAKPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+ID4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgo+ID4gQ2M6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgo+ ID4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ ID4gLS0tCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgIHwgMjAg KysrKy0tLS0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jICAgICAgICAgfCA1 MCArKysrKysrKystLS0tLS0tLS0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xr LmMgICAgICAgfCAzOCArKysrKysrLS0tLS0tLQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfd29ya2Fyb3VuZHMuYyB8IDY0ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ID4gNCBmaWxl cyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA4NiBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jCj4gPiBpbmRleCBjNjM1NGY2Y2RiZGIuLmVkNDhhYWMxNDg3ZCAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+IEBAIC0yMTksMjAgKzIxOSwyMCBA QCBpbnRlbF92aXJ0X2RldGVjdF9wY2goY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ID4gCSAqIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MgYXMgdG8gd2hpY2ggUENIIGlz IHJlYWxseSB0aGVyZS4KPiA+IAkgKi8KPiA+IAo+ID4gLQlpZiAoSVNfR0VOKGRldl9wcml2LCA1 KSkKPiA+IC0JCWlkID0gSU5URUxfUENIX0lCWF9ERVZJQ0VfSURfVFlQRTsKPiA+IC0JZWxzZSBp ZiAoSVNfR0VOKGRldl9wcml2LCA2KSB8fCBJU19JVllCUklER0UoZGV2X3ByaXYpKQo+ID4gLQkJ aWQgPSBJTlRFTF9QQ0hfQ1BUX0RFVklDRV9JRF9UWVBFOwo+ID4gKwlpZiAoSVNfSUNFTEFLRShk ZXZfcHJpdikpCj4gPiArCQlpZCA9IElOVEVMX1BDSF9JQ1BfREVWSUNFX0lEX1RZUEU7Cj4gPiAr CWVsc2UgaWYgKElTX0NPRkZFRUxBS0UoZGV2X3ByaXYpIHx8IElTX0NBTk5PTkxBS0UoZGV2X3By aXYpKQo+IAo+IGlmIHlvdSB3YW50IHRvIGJlIHN0cmljdCBhYm91dCB0aGUgb3JkZXIsIHRoZW4g dGhpcyBzaG91bGQgYmU6CgphY2NlcHRlZC4gSXQgc2VlbXMgdGhlIG1vc3QgdXNlZCBvbmUgYW5k IG1ha2VzIHNlbnNlCnRvIGtlZXAgQ0ZMIG5lYXIgdGhlIGdlbjkgb25lcyBhbHRob3VnaCBjZmwg Y2FtZSBhZnRlciBjbmwKY2hyb25vbG9naWNhbGx5Cgo+IAo+IAllbHNlIGlmIChJU19DQU5OT05M QUtFKGRldl9wcml2KSB8fCBJU19DT0ZGRUxBS0UoZGV2X3ByaXYpKQo+IAo+ID4gKwkJaWQgPSBJ TlRFTF9QQ0hfQ05QX0RFVklDRV9JRF9UWVBFOwo+ID4gKwllbHNlIGlmIChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCj4gCj4gZGl0dG8KCmFjY2VwdGVkLgoK PiAKPiA+ICsJCWlkID0gSU5URUxfUENIX1NQVF9ERVZJQ0VfSURfVFlQRTsKPiA+IAllbHNlIGlm IChJU19IU1dfVUxUKGRldl9wcml2KSB8fCBJU19CRFdfVUxUKGRldl9wcml2KSkKPiA+IAkJaWQg PSBJTlRFTF9QQ0hfTFBUX0xQX0RFVklDRV9JRF9UWVBFOwo+ID4gCWVsc2UgaWYgKElTX0hBU1dF TEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gPiAJCWlkID0gSU5URUxf UENIX0xQVF9ERVZJQ0VfSURfVFlQRTsKPiA+IC0JZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJp dikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ID4gLQkJaWQgPSBJTlRFTF9QQ0hfU1BUX0RF VklDRV9JRF9UWVBFOwo+ID4gLQllbHNlIGlmIChJU19DT0ZGRUVMQUtFKGRldl9wcml2KSB8fCBJ U19DQU5OT05MQUtFKGRldl9wcml2KSkKPiA+IC0JCWlkID0gSU5URUxfUENIX0NOUF9ERVZJQ0Vf SURfVFlQRTsKPiA+IC0JZWxzZSBpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikpCj4gPiAtCQlpZCA9 IElOVEVMX1BDSF9JQ1BfREVWSUNFX0lEX1RZUEU7Cj4gPiArCWVsc2UgaWYgKElTX0dFTihkZXZf cHJpdiwgNikgfHwgSVNfSVZZQlJJREdFKGRldl9wcml2KSkKPiA+ICsJCWlkID0gSU5URUxfUENI X0NQVF9ERVZJQ0VfSURfVFlQRTsKPiA+ICsJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1KSkK PiA+ICsJCWlkID0gSU5URUxfUENIX0lCWF9ERVZJQ0VfSURfVFlQRTsKPiA+IAo+ID4gCWlmIChp ZCkKPiA+IAkJRFJNX0RFQlVHX0tNUygiQXNzdW1pbmcgUENIIElEICUwNHhcbiIsIGlkKTsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4gPiBpbmRleCA5ZWJmOTlmM2Q4ZDMuLjcyYTlhMzVi NDBlMiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ID4gQEAgLTI4ODEsMTIg KzI4ODEsMjQgQEAgdm9pZCBpOTE1X3BlcmZfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ID4gCj4gPiAJc3lzZnNfYXR0cl9pbml0KCZkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cik7Cj4gPiAKPiA+IC0JaWYgKElTX0hB U1dFTEwoZGV2X3ByaXYpKSB7Cj4gPiAtCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19oc3co ZGV2X3ByaXYpOwo+ID4gLQl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiA+ IC0JCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2JkdyhkZXZfcHJpdik7Cj4gPiAtCX0gZWxz ZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiA+IC0JCWk5MTVfcGVyZl9sb2FkX3Rl c3RfY29uZmlnX2NodihkZXZfcHJpdik7Cj4gPiArCWlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkg ewo+ID4gKwkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaWNsKGRldl9wcml2KTsKPiA+ICsJ fSBlbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ID4gKwkJaTkxNV9wZXJmX2xv YWRfdGVzdF9jb25maWdfY25sKGRldl9wcml2KTsKPiA+ICsJfSBlbHNlIGlmIChJU19DT0ZGRUVM QUtFKGRldl9wcml2KSkgewo+ID4gKwkJaWYgKElTX0NGTF9HVDIoZGV2X3ByaXYpKQo+ID4gKwkJ CWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NmbGd0MihkZXZfcHJpdik7Cj4gPiArCQlpZiAo SVNfQ0ZMX0dUMyhkZXZfcHJpdikpCj4gPiArCQkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdf Y2ZsZ3QzKGRldl9wcml2KTsKPiA+ICsJfSBlbHNlIGlmIChJU19HRU1JTklMQUtFKGRldl9wcml2 KSkgewo+ID4gKwkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfZ2xrKGRldl9wcml2KTsKPiA+ ICsJfSBlbHNlIGlmIChJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiA+ICsJCWlmIChJU19LQkxf R1QyKGRldl9wcml2KSkKPiA+ICsJCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19rYmxndDIo ZGV2X3ByaXYpOwo+ID4gKwkJZWxzZSBpZiAoSVNfS0JMX0dUMyhkZXZfcHJpdikpCj4gPiArCQkJ aTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QzKGRldl9wcml2KTsKPiA+ICsJfSBlbHNl IGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ID4gKwkJaTkxNV9wZXJmX2xvYWRfdGVzdF9j b25maWdfYnh0KGRldl9wcml2KTsKPiA+IAl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYp KSB7Cj4gPiAJCWlmIChJU19TS0xfR1QyKGRldl9wcml2KSkKPiA+IAkJCWk5MTVfcGVyZl9sb2Fk X3Rlc3RfY29uZmlnX3NrbGd0MihkZXZfcHJpdik7Cj4gPiBAQCAtMjg5NCwyNSArMjkwNiwxMyBA QCB2b2lkIGk5MTVfcGVyZl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gPiAJCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDMoZGV2X3ByaXYpOwo+ ID4gCQllbHNlIGlmIChJU19TS0xfR1Q0KGRldl9wcml2KSkKPiA+IAkJCWk5MTVfcGVyZl9sb2Fk X3Rlc3RfY29uZmlnX3NrbGd0NChkZXZfcHJpdik7Cj4gPiAtCX0gZWxzZSBpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikpIHsKPiA+IC0JCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2J4dChkZXZf cHJpdik7Cj4gPiAtCX0gZWxzZSBpZiAoSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gPiAtCQlp ZiAoSVNfS0JMX0dUMihkZXZfcHJpdikpCj4gPiAtCQkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25m aWdfa2JsZ3QyKGRldl9wcml2KTsKPiA+IC0JCWVsc2UgaWYgKElTX0tCTF9HVDMoZGV2X3ByaXYp KQo+ID4gLQkJCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2tibGd0MyhkZXZfcHJpdik7Cj4g PiAtCX0gZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKPiA+IC0JCWk5MTVfcGVy Zl9sb2FkX3Rlc3RfY29uZmlnX2dsayhkZXZfcHJpdik7Cj4gPiAtCX0gZWxzZSBpZiAoSVNfQ09G RkVFTEFLRShkZXZfcHJpdikpIHsKPiA+IC0JCWlmIChJU19DRkxfR1QyKGRldl9wcml2KSkKPiA+ IC0JCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDIoZGV2X3ByaXYpOwo+ID4gLQkJ aWYgKElTX0NGTF9HVDMoZGV2X3ByaXYpKQo+ID4gLQkJCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29u ZmlnX2NmbGd0MyhkZXZfcHJpdik7Cj4gPiAtCX0gZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShkZXZf cHJpdikpIHsKPiA+IC0JCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NubChkZXZfcHJpdik7 Cj4gPiAtCX0gZWxzZSBpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikpIHsKPiA+IC0JCWk5MTVfcGVy Zl9sb2FkX3Rlc3RfY29uZmlnX2ljbChkZXZfcHJpdik7Cj4gPiAtCX0KPiA+ICsJfSBlbHNlIGlm IChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ID4gKwkJaTkxNV9wZXJmX2xvYWRfdGVzdF9j b25maWdfY2h2KGRldl9wcml2KTsKPiA+ICsJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3By aXYpKSB7Cj4gPiArCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19iZHcoZGV2X3ByaXYpOwo+ ID4gKwl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gPiArCQlpOTE1X3BlcmZf bG9hZF90ZXN0X2NvbmZpZ19oc3coZGV2X3ByaXYpOwo+ID4gK30KPiA+IAo+ID4gCWlmIChkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9PSAwKQo+ID4gCQlnb3RvIHN5c2ZzX2Vycm9y Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gPiBpbmRleCAyNmUwMWE4NDY1YWYu LjVkMjY2NTM4MDM2ZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NkY2xrLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPiA+ IEBAIC0yNzQ0LDE4ICsyNzQ0LDEzIEBAIHZvaWQgaW50ZWxfdXBkYXRlX3Jhd2NsayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgKi8KPiA+IHZvaWQgaW50ZWxfaW5pdF9j ZGNsa19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiB7Cj4gPiAt CWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXku c2V0X2NkY2xrID0gY2h2X3NldF9jZGNsazsKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVz ZXRfY2FsY19jZGNsayA9Cj4gPiAtCQkJdmx2X21vZGVzZXRfY2FsY19jZGNsazsKPiA+IC0JfSBl bHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkgewo+ID4gLQkJZGV2X3ByaXYtPmRpc3Bs YXkuc2V0X2NkY2xrID0gdmx2X3NldF9jZGNsazsKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5Lm1v ZGVzZXRfY2FsY19jZGNsayA9Cj4gPiAtCQkJdmx2X21vZGVzZXRfY2FsY19jZGNsazsKPiA+IC0J fSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gPiAtCQlkZXZfcHJpdi0+ZGlz cGxheS5zZXRfY2RjbGsgPSBiZHdfc2V0X2NkY2xrOwo+ID4gKwlpZiAoSVNfSUNFTEFLRShkZXZf cHJpdikpIHsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9IGljbF9zZXRfY2Rj bGs7Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPSBpY2xfbW9k ZXNldF9jYWxjX2NkY2xrOwo+ID4gKwl9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYp KSB7Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBjbmxfc2V0X2NkY2xrOwo+ ID4gCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gLQkJCWJkd19t b2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiArCQkJY25sX21vZGVzZXRfY2FsY19jZGNsazsKPiA+IAl9 IGVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7Cj4gPiAJCWRldl9wcml2LT5kaXNwbGF5 LnNldF9jZGNsayA9IGJ4dF9zZXRfY2RjbGs7Cj4gPiAJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVz ZXRfY2FsY19jZGNsayA9Cj4gPiBAQCAtMjc2NCwyMyArMjc1OSwyOCBAQCB2b2lkIGludGVsX2lu aXRfY2RjbGtfaG9va3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gCQlk ZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBza2xfc2V0X2NkY2xrOwo+ID4gCQlkZXZfcHJp di0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gCQkJc2tsX21vZGVzZXRfY2FsY19j ZGNsazsKPiA+IC0JfSBlbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ID4gLQkJ ZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gY25sX3NldF9jZGNsazsKPiA+ICsJfSBlbHNl IGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5z ZXRfY2RjbGsgPSBiZHdfc2V0X2NkY2xrOwo+ID4gCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NhbGNfY2RjbGsgPQo+ID4gLQkJCWNubF9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiAtCX0gZWxz ZSBpZiAoSVNfSUNFTEFLRShkZXZfcHJpdikpIHsKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LnNl dF9jZGNsayA9IGljbF9zZXRfY2RjbGs7Cj4gPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NhbGNfY2RjbGsgPSBpY2xfbW9kZXNldF9jYWxjX2NkY2xrOwo+ID4gKwkJCWJkd19tb2Rlc2V0 X2NhbGNfY2RjbGs7Cj4gPiArCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsK PiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9IGNodl9zZXRfY2RjbGs7Cj4gPiAr CQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gKwkJCXZsdl9tb2Rl c2V0X2NhbGNfY2RjbGs7Cj4gPiArCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikp IHsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9IHZsdl9zZXRfY2RjbGs7Cj4g PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gKwkJCXZsdl9t b2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiAJfQo+ID4gCj4gPiAJaWYgKElTX0lDRUxBS0UoZGV2X3By aXYpKQo+ID4gCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsgPSBpY2xfZ2V0X2NkY2xrOwo+ ID4gCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQo+ID4gCQlkZXZfcHJpdi0+ZGlz cGxheS5nZXRfY2RjbGsgPSBjbmxfZ2V0X2NkY2xrOwo+ID4gLQllbHNlIGlmIChJU19HRU45X0JD KGRldl9wcml2KSkKPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayA9IHNrbF9nZXRf Y2RjbGs7Cj4gPiAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gPiAJCWRldl9wcml2 LT5kaXNwbGF5LmdldF9jZGNsayA9IGJ4dF9nZXRfY2RjbGs7Cj4gPiArCWVsc2UgaWYgKElTX0dF TjlfQkMoZGV2X3ByaXYpKQo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2NkY2xrID0gc2ts X2dldF9jZGNsazsKPiAKPiBubyByZWFzb24gdG8gY2hhbmdlIHRoZXNlLi4uCgpMUCBjYW1lIGFm dGVyIEJDIGNocm9ub2xvZ2ljYWxseSBhbmQgSSBjaGFuZ2VkIGp1c3QgdG8gbWF0Y2gKdGhlIGFi b3ZlIGdyb3VwLgoKPiAKPiA+IAllbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ID4g CQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsgPSBiZHdfZ2V0X2NkY2xrOwo+ID4gCWVsc2Ug aWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93 b3JrYXJvdW5kcy5jCj4gPiBpbmRleCA3NDNjZjViMDAxNTUuLjNlODEzOGI2NjE5MSAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKPiA+IEBAIC04NjIs MjYgKzg2MiwyNiBAQCBpY2xfZ3Rfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQo+ID4gc3RhdGljIHZvaWQKPiA+ IGd0X2luaXRfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVj dCBpOTE1X3dhX2xpc3QgKndhbCkKPiA+IHsKPiA+IC0JaWYgKElOVEVMX0dFTihpOTE1KSA8IDgp Cj4gPiArCWlmIChJU19JQ0VMQUtFKGk5MTUpKQo+ID4gKwkJaWNsX2d0X3dvcmthcm91bmRzX2lu aXQoaTkxNSwgd2FsKTsKPiA+ICsJZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkKPiA+ICsJ CWNubF9ndF93b3JrYXJvdW5kc19pbml0KGk5MTUsIHdhbCk7Cj4gPiArCWVsc2UgaWYgKElTX0NP RkZFRUxBS0UoaTkxNSkpCj4gPiArCQljZmxfZ3Rfd29ya2Fyb3VuZHNfaW5pdChpOTE1LCB3YWwp Owo+ID4gKwllbHNlIGlmIChJU19HRU1JTklMQUtFKGk5MTUpKQo+ID4gKwkJZ2xrX2d0X3dvcmth cm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+ICsJZWxzZSBpZiAoSVNfS0FCWUxBS0UoaTkxNSkp Cj4gPiArCQlrYmxfZ3Rfd29ya2Fyb3VuZHNfaW5pdChpOTE1LCB3YWwpOwo+ID4gKwllbHNlIGlm IChJU19CUk9YVE9OKGk5MTUpKQo+ID4gKwkJYnh0X2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwg d2FsKTsKPiA+ICsJZWxzZSBpZiAoSVNfU0tZTEFLRShpOTE1KSkKPiA+ICsJCXNrbF9ndF93b3Jr YXJvdW5kc19pbml0KGk5MTUsIHdhbCk7Cj4gPiArCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoaTkx NSkpCj4gPiAJCXJldHVybjsKPiA+IAllbHNlIGlmIChJU19CUk9BRFdFTEwoaTkxNSkpCj4gPiAJ CXJldHVybjsKPiA+IC0JZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhpOTE1KSkKPiA+ICsJZWxzZSBp ZiAoSU5URUxfR0VOKGk5MTUpIDwgOCkKPiA+IAkJcmV0dXJuOwo+ID4gLQllbHNlIGlmIChJU19T S1lMQUtFKGk5MTUpKQo+ID4gLQkJc2tsX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsK PiA+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihpOTE1KSkKPiA+IC0JCWJ4dF9ndF93b3JrYXJvdW5k c19pbml0KGk5MTUsIHdhbCk7Cj4gPiAtCWVsc2UgaWYgKElTX0tBQllMQUtFKGk5MTUpKQo+ID4g LQkJa2JsX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+IC0JZWxzZSBpZiAoSVNf R0VNSU5JTEFLRShpOTE1KSkKPiA+IC0JCWdsa19ndF93b3JrYXJvdW5kc19pbml0KGk5MTUsIHdh bCk7Cj4gPiAtCWVsc2UgaWYgKElTX0NPRkZFRUxBS0UoaTkxNSkpCj4gPiAtCQljZmxfZ3Rfd29y a2Fyb3VuZHNfaW5pdChpOTE1LCB3YWwpOwo+ID4gLQllbHNlIGlmIChJU19DQU5OT05MQUtFKGk5 MTUpKQo+ID4gLQkJY25sX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2FsKTsKPiA+IC0JZWxz ZSBpZiAoSVNfSUNFTEFLRShpOTE1KSkKPiA+IC0JCWljbF9ndF93b3JrYXJvdW5kc19pbml0KGk5 MTUsIHdhbCk7Cj4gPiAJZWxzZQo+ID4gCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGk5MTUpKTsK PiA+IH0KPiA+IEBAIC0xMDYzLDI2ICsxMDYzLDI2IEBAIHZvaWQgaW50ZWxfZW5naW5lX2luaXRf d2hpdGVsaXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiA+IAo+ID4gCXdhX2lu aXRfc3RhcnQodywgIndoaXRlbGlzdCIpOwo+ID4gCj4gPiAtCWlmIChJTlRFTF9HRU4oaTkxNSkg PCA4KQo+ID4gKwlpZiAoSVNfSUNFTEFLRShpOTE1KSkKPiA+ICsJCWljbF93aGl0ZWxpc3RfYnVp bGQodyk7Cj4gPiArCWVsc2UgaWYgKElTX0NBTk5PTkxBS0UoaTkxNSkpCj4gPiArCQljbmxfd2hp dGVsaXN0X2J1aWxkKHcpOwo+ID4gKwllbHNlIGlmIChJU19DT0ZGRUVMQUtFKGk5MTUpKQo+ID4g KwkJY2ZsX3doaXRlbGlzdF9idWlsZCh3KTsKPiA+ICsJZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShp OTE1KSkKPiA+ICsJCWdsa193aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiArCWVsc2UgaWYgKElTX0tB QllMQUtFKGk5MTUpKQo+ID4gKwkJa2JsX3doaXRlbGlzdF9idWlsZCh3KTsKPiA+ICsJZWxzZSBp ZiAoSVNfQlJPWFRPTihpOTE1KSkKPiA+ICsJCWJ4dF93aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiAr CWVsc2UgaWYgKElTX1NLWUxBS0UoaTkxNSkpCj4gPiArCQlza2xfd2hpdGVsaXN0X2J1aWxkKHcp Owo+ID4gKwllbHNlIGlmIChJU19DSEVSUllWSUVXKGk5MTUpKQo+ID4gCQlyZXR1cm47Cj4gPiAJ ZWxzZSBpZiAoSVNfQlJPQURXRUxMKGk5MTUpKQo+ID4gCQlyZXR1cm47Cj4gPiAtCWVsc2UgaWYg KElTX0NIRVJSWVZJRVcoaTkxNSkpCj4gPiArCWVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA8IDgp Cj4gCj4gbWFrZSB0aGlzIElOVEVMX0dFTihpOTE1KSA8PSA4KSBhbmQgcmVtb3ZlIElTX0NIRVJS WVZJRVcoKSBhYm92ZT8KCmFjY2VwdGVkLgpyZW1vdmluZyBjaHYgYW5kIGJkdyA7KQphbmQgSSBm b3VuZCBhbm90aGVyIHNpbWlsYXIgc3BvdCBhbmQgcmVtb3ZpbmcgYXMgd2VsbC4uLgoKPiBUaGUg bWVhbmluZyB3b3VsZCBiZSB0aGF0ICJCUk9BRFdFTEwgaXMgdGhlIG9ubHkgZ2VuOCB0aGF0IGhh cyB0aGlzLCB0aGUKPiBvdGhlcnMgYW5kIGJlbG93ID0+IGRvIG5vdGhpbmcuIgo+IAo+IAo+IEkg d2VudCB0aHJvdWdoIGVhY2ggb2YgdGhlIGlmL2Vsc2UgY2hhaW5zIGFuZCBkaWQgbXkgYmVzdCB0 byBtYW51YWxseQo+IHZlcmlmeSB0aGVtOiBJIGRpZG4ndCBmaW5kIGFueSBidWcuIENvbW1lbnRz IGFib3ZlIGFyZSBiYXNpY2FsbHkKPiBuaXRwaWNrcy4gIFlvdXIgY2FsbCBpZiB5b3UgYXJlIGFj dHVhbGx5IGdvaW5nIHRvIGNoYW5nZSB0aGVtLgo+IAo+IFJldmlld2VkLWJ5OiBMdWNhcyBEZSBN YXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KClRoYW5rcywKUm9kcmlnby4KCj4gCj4g Cj4gTHVjYXMgRGUgTWFyY2hpCj4gCj4gPiAJCXJldHVybjsKPiA+IC0JZWxzZSBpZiAoSVNfU0tZ TEFLRShpOTE1KSkKPiA+IC0JCXNrbF93aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiAtCWVsc2UgaWYg KElTX0JST1hUT04oaTkxNSkpCj4gPiAtCQlieHRfd2hpdGVsaXN0X2J1aWxkKHcpOwo+ID4gLQll bHNlIGlmIChJU19LQUJZTEFLRShpOTE1KSkKPiA+IC0JCWtibF93aGl0ZWxpc3RfYnVpbGQodyk7 Cj4gPiAtCWVsc2UgaWYgKElTX0dFTUlOSUxBS0UoaTkxNSkpCj4gPiAtCQlnbGtfd2hpdGVsaXN0 X2J1aWxkKHcpOwo+ID4gLQllbHNlIGlmIChJU19DT0ZGRUVMQUtFKGk5MTUpKQo+ID4gLQkJY2Zs X3doaXRlbGlzdF9idWlsZCh3KTsKPiA+IC0JZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkK PiA+IC0JCWNubF93aGl0ZWxpc3RfYnVpbGQodyk7Cj4gPiAtCWVsc2UgaWYgKElTX0lDRUxBS0Uo aTkxNSkpCj4gPiAtCQlpY2xfd2hpdGVsaXN0X2J1aWxkKHcpOwo+ID4gCWVsc2UKPiA+IAkJTUlT U0lOR19DQVNFKElOVEVMX0dFTihpOTE1KSk7Cj4gPiAKPiA+IC0tIAo+ID4gMi4yMC4xCj4gPiAK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4