From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 1/2] drm/i915: reduce indent in pch detection Date: Fri, 26 Jan 2018 17:53:27 +0200 Message-ID: <20180126155327.GC13657@boom> References: <20180126144805.6276-1-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1EEA36E2A5 for ; Fri, 26 Jan 2018 15:53:26 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180126144805.6276-1-jani.nikula@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 List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKYW4gMjYsIDIwMTggYXQgMDQ6NDg6MDRQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gU2F2ZSBzb21lIGhvcml6b250YWwgc3BhY2UuCgpZZXMsIHBsZWFzZSEKClJldmlld2Vk LWJ5OiBEYXZpZCBXZWluZWhhbGwgPGRhdmlkLndlaW5laGFsbEBsaW51eC5pbnRlbC5jb20+Cgo+ IFNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgfCAxODkgKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgOTYgaW5zZXJ0aW9u cygrKSwgOTMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXgg MWVjMTJhZGQzNGIyLi4zZTg2NjRkZTAyNWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK PiBAQCAtMTc2LDEwMCArMTc2LDEwMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZXRlY3RfcGNoKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCSAqIG9mIG9ubHkgY2hlY2tpbmcg dGhlIGZpcnN0IG9uZS4KPiAgCSAqLwo+ICAJd2hpbGUgKChwY2ggPSBwY2lfZ2V0X2NsYXNzKFBD SV9DTEFTU19CUklER0VfSVNBIDw8IDgsIHBjaCkpKSB7Cj4gLQkJaWYgKHBjaC0+dmVuZG9yID09 IFBDSV9WRU5ET1JfSURfSU5URUwpIHsKPiAtCQkJdW5zaWduZWQgc2hvcnQgaWQgPSBwY2gtPmRl dmljZSAmIElOVEVMX1BDSF9ERVZJQ0VfSURfTUFTSzsKPiAtCj4gLQkJCWRldl9wcml2LT5wY2hf aWQgPSBpZDsKPiAtCj4gLQkJCWlmIChpZCA9PSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBF KSB7Cj4gLQkJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBQQ0hfSUJYOwo+IC0JCQkJRFJNX0RFQlVH X0tNUygiRm91bmQgSWJleCBQZWFrIFBDSFxuIik7Cj4gLQkJCQlXQVJOX09OKCFJU19HRU41KGRl dl9wcml2KSk7Cj4gLQkJCX0gZWxzZSBpZiAoaWQgPT0gSU5URUxfUENIX0NQVF9ERVZJQ0VfSURf VFlQRSkgewo+IC0JCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX0NQVDsKPiAtCQkJCURSTV9E RUJVR19LTVMoIkZvdW5kIENvdWdhclBvaW50IFBDSFxuIik7Cj4gLQkJCQlXQVJOX09OKCFJU19H RU42KGRldl9wcml2KSAmJgo+IC0JCQkJCSFJU19JVllCUklER0UoZGV2X3ByaXYpKTsKPiAtCQkJ fSBlbHNlIGlmIChpZCA9PSBJTlRFTF9QQ0hfUFBUX0RFVklDRV9JRF9UWVBFKSB7Cj4gLQkJCQkv KiBQYW50aGVyUG9pbnQgaXMgQ1BUIGNvbXBhdGlibGUgKi8KPiAtCQkJCWRldl9wcml2LT5wY2hf dHlwZSA9IFBDSF9DUFQ7Cj4gLQkJCQlEUk1fREVCVUdfS01TKCJGb3VuZCBQYW50aGVyUG9pbnQg UENIXG4iKTsKPiAtCQkJCVdBUk5fT04oIUlTX0dFTjYoZGV2X3ByaXYpICYmCj4gLQkJCQkJIUlT X0lWWUJSSURHRShkZXZfcHJpdikpOwo+IC0JCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9M UFRfREVWSUNFX0lEX1RZUEUpIHsKPiAtCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9MUFQ7 Cj4gLQkJCQlEUk1fREVCVUdfS01TKCJGb3VuZCBMeW54UG9pbnQgUENIXG4iKTsKPiAtCQkJCVdB Uk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmCj4gLQkJCQkJIUlTX0JST0FEV0VMTChkZXZf cHJpdikpOwo+IC0JCQkJV0FSTl9PTihJU19IU1dfVUxUKGRldl9wcml2KSB8fAo+IC0JCQkJCUlT X0JEV19VTFQoZGV2X3ByaXYpKTsKPiAtCQkJfSBlbHNlIGlmIChpZCA9PSBJTlRFTF9QQ0hfTFBU X0xQX0RFVklDRV9JRF9UWVBFKSB7Cj4gLQkJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBQQ0hfTFBU Owo+IC0JCQkJRFJNX0RFQlVHX0tNUygiRm91bmQgTHlueFBvaW50IExQIFBDSFxuIik7Cj4gLQkJ CQlXQVJOX09OKCFJU19IQVNXRUxMKGRldl9wcml2KSAmJgo+IC0JCQkJCSFJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKTsKPiAtCQkJCVdBUk5fT04oIUlTX0hTV19VTFQoZGV2X3ByaXYpICYmCj4gLQkJ CQkJIUlTX0JEV19VTFQoZGV2X3ByaXYpKTsKPiAtCQkJfSBlbHNlIGlmIChpZCA9PSBJTlRFTF9Q Q0hfV1BUX0RFVklDRV9JRF9UWVBFKSB7Cj4gLQkJCQkvKiBXaWxkY2F0UG9pbnQgaXMgTFBUIGNv bXBhdGlibGUgKi8KPiAtCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9MUFQ7Cj4gLQkJCQlE Uk1fREVCVUdfS01TKCJGb3VuZCBXaWxkY2F0UG9pbnQgUENIXG4iKTsKPiAtCQkJCVdBUk5fT04o IUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmCj4gLQkJCQkJIUlTX0JST0FEV0VMTChkZXZfcHJpdikp Owo+IC0JCQkJV0FSTl9PTihJU19IU1dfVUxUKGRldl9wcml2KSB8fAo+IC0JCQkJCUlTX0JEV19V TFQoZGV2X3ByaXYpKTsKPiAtCQkJfSBlbHNlIGlmIChpZCA9PSBJTlRFTF9QQ0hfV1BUX0xQX0RF VklDRV9JRF9UWVBFKSB7Cj4gLQkJCQkvKiBXaWxkY2F0UG9pbnQgaXMgTFBUIGNvbXBhdGlibGUg Ki8KPiAtCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9MUFQ7Cj4gLQkJCQlEUk1fREVCVUdf S01TKCJGb3VuZCBXaWxkY2F0UG9pbnQgTFAgUENIXG4iKTsKPiAtCQkJCVdBUk5fT04oIUlTX0hB U1dFTEwoZGV2X3ByaXYpICYmCj4gLQkJCQkJIUlTX0JST0FEV0VMTChkZXZfcHJpdikpOwo+IC0J CQkJV0FSTl9PTighSVNfSFNXX1VMVChkZXZfcHJpdikgJiYKPiAtCQkJCQkhSVNfQkRXX1VMVChk ZXZfcHJpdikpOwo+IC0JCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9TUFRfREVWSUNFX0lE X1RZUEUpIHsKPiAtCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9TUFQ7Cj4gLQkJCQlEUk1f REVCVUdfS01TKCJGb3VuZCBTdW5yaXNlUG9pbnQgUENIXG4iKTsKPiAtCQkJCVdBUk5fT04oIUlT X1NLWUxBS0UoZGV2X3ByaXYpICYmCj4gLQkJCQkJIUlTX0tBQllMQUtFKGRldl9wcml2KSk7Cj4g LQkJCX0gZWxzZSBpZiAoaWQgPT0gSU5URUxfUENIX1NQVF9MUF9ERVZJQ0VfSURfVFlQRSkgewo+ IC0JCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX1NQVDsKPiAtCQkJCURSTV9ERUJVR19LTVMo IkZvdW5kIFN1bnJpc2VQb2ludCBMUCBQQ0hcbiIpOwo+IC0JCQkJV0FSTl9PTighSVNfU0tZTEFL RShkZXZfcHJpdikgJiYKPiAtCQkJCQkhSVNfS0FCWUxBS0UoZGV2X3ByaXYpKTsKPiAtCQkJfSBl bHNlIGlmIChpZCA9PSBJTlRFTF9QQ0hfS0JQX0RFVklDRV9JRF9UWVBFKSB7Cj4gLQkJCQlkZXZf cHJpdi0+cGNoX3R5cGUgPSBQQ0hfS0JQOwo+IC0JCQkJRFJNX0RFQlVHX0tNUygiRm91bmQgS2Fi eSBMYWtlIFBDSCAoS0JQKVxuIik7Cj4gLQkJCQlXQVJOX09OKCFJU19TS1lMQUtFKGRldl9wcml2 KSAmJgo+IC0JCQkJCSFJU19LQUJZTEFLRShkZXZfcHJpdikgJiYKPiAtCQkJCQkhSVNfQ09GRkVF TEFLRShkZXZfcHJpdikpOwo+IC0JCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9DTlBfREVW SUNFX0lEX1RZUEUpIHsKPiAtCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9DTlA7Cj4gLQkJ CQlEUk1fREVCVUdfS01TKCJGb3VuZCBDYW5ub24gTGFrZSBQQ0ggKENOUClcbiIpOwo+IC0JCQkJ V0FSTl9PTighSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgJiYKPiAtCQkJCQkhSVNfQ09GRkVFTEFL RShkZXZfcHJpdikpOwo+IC0JCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9DTlBfTFBfREVW SUNFX0lEX1RZUEUpIHsKPiAtCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9DTlA7Cj4gLQkJ CQlEUk1fREVCVUdfS01TKCJGb3VuZCBDYW5ub24gTGFrZSBMUCBQQ0ggKENOUC1MUClcbiIpOwo+ IC0JCQkJV0FSTl9PTighSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgJiYKPiAtCQkJCQkhSVNfQ09G RkVFTEFLRShkZXZfcHJpdikpOwo+IC0JCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9JQ1Bf REVWSUNFX0lEX1RZUEUpIHsKPiAtCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9JQ1A7Cj4g LQkJCQlEUk1fREVCVUdfS01TKCJGb3VuZCBJY2UgTGFrZSBQQ0hcbiIpOwo+IC0JCQkJV0FSTl9P TighSVNfSUNFTEFLRShkZXZfcHJpdikpOwo+IC0JCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BD SF9QMlhfREVWSUNFX0lEX1RZUEUgfHwKPiAtCQkJCSAgIGlkID09IElOVEVMX1BDSF9QM1hfREVW SUNFX0lEX1RZUEUgfHwKPiAtCQkJCSAgIChpZCA9PSBJTlRFTF9QQ0hfUUVNVV9ERVZJQ0VfSURf VFlQRSAmJgo+IC0JCQkJICAgIHBjaC0+c3Vic3lzdGVtX3ZlbmRvciA9PQo+IC0JCQkJCSAgICBQ Q0lfU1VCVkVORE9SX0lEX1JFREhBVF9RVU1SQU5FVCAmJgo+IC0JCQkJICAgIHBjaC0+c3Vic3lz dGVtX2RldmljZSA9PQo+IC0JCQkJCSAgICBQQ0lfU1VCREVWSUNFX0lEX1FFTVUpKSB7Cj4gLQkJ CQlkZXZfcHJpdi0+cGNoX3R5cGUgPQo+IC0JCQkJCWludGVsX3ZpcnRfZGV0ZWN0X3BjaChkZXZf cHJpdik7Cj4gLQkJCX0gZWxzZQo+IC0JCQkJY29udGludWU7Cj4gLQo+IC0JCQlicmVhazsKPiAr CQl1bnNpZ25lZCBzaG9ydCBpZDsKPiArCj4gKwkJaWYgKHBjaC0+dmVuZG9yICE9IFBDSV9WRU5E T1JfSURfSU5URUwpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZCA9IHBjaC0+ZGV2aWNlICYg SU5URUxfUENIX0RFVklDRV9JRF9NQVNLOwo+ICsKPiArCQlkZXZfcHJpdi0+cGNoX2lkID0gaWQ7 Cj4gKwo+ICsJCWlmIChpZCA9PSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFKSB7Cj4gKwkJ CWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9JQlg7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkZvdW5k IEliZXggUGVhayBQQ0hcbiIpOwo+ICsJCQlXQVJOX09OKCFJU19HRU41KGRldl9wcml2KSk7Cj4g KwkJfSBlbHNlIGlmIChpZCA9PSBJTlRFTF9QQ0hfQ1BUX0RFVklDRV9JRF9UWVBFKSB7Cj4gKwkJ CWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9DUFQ7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkZvdW5k IENvdWdhclBvaW50IFBDSFxuIik7Cj4gKwkJCVdBUk5fT04oIUlTX0dFTjYoZGV2X3ByaXYpICYm Cj4gKwkJCQkhSVNfSVZZQlJJREdFKGRldl9wcml2KSk7Cj4gKwkJfSBlbHNlIGlmIChpZCA9PSBJ TlRFTF9QQ0hfUFBUX0RFVklDRV9JRF9UWVBFKSB7Cj4gKwkJCS8qIFBhbnRoZXJQb2ludCBpcyBD UFQgY29tcGF0aWJsZSAqLwo+ICsJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBQQ0hfQ1BUOwo+ICsJ CQlEUk1fREVCVUdfS01TKCJGb3VuZCBQYW50aGVyUG9pbnQgUENIXG4iKTsKPiArCQkJV0FSTl9P TighSVNfR0VONihkZXZfcHJpdikgJiYKPiArCQkJCSFJU19JVllCUklER0UoZGV2X3ByaXYpKTsK PiArCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9MUFRfREVWSUNFX0lEX1RZUEUpIHsKPiAr CQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX0xQVDsKPiArCQkJRFJNX0RFQlVHX0tNUygiRm91 bmQgTHlueFBvaW50IFBDSFxuIik7Cj4gKwkJCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYp ICYmCj4gKwkJCQkhSVNfQlJPQURXRUxMKGRldl9wcml2KSk7Cj4gKwkJCVdBUk5fT04oSVNfSFNX X1VMVChkZXZfcHJpdikgfHwKPiArCQkJCUlTX0JEV19VTFQoZGV2X3ByaXYpKTsKPiArCQl9IGVs c2UgaWYgKGlkID09IElOVEVMX1BDSF9MUFRfTFBfREVWSUNFX0lEX1RZUEUpIHsKPiArCQkJZGV2 X3ByaXYtPnBjaF90eXBlID0gUENIX0xQVDsKPiArCQkJRFJNX0RFQlVHX0tNUygiRm91bmQgTHlu eFBvaW50IExQIFBDSFxuIik7Cj4gKwkJCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYm Cj4gKwkJCQkhSVNfQlJPQURXRUxMKGRldl9wcml2KSk7Cj4gKwkJCVdBUk5fT04oIUlTX0hTV19V TFQoZGV2X3ByaXYpICYmCj4gKwkJCQkhSVNfQkRXX1VMVChkZXZfcHJpdikpOwo+ICsJCX0gZWxz ZSBpZiAoaWQgPT0gSU5URUxfUENIX1dQVF9ERVZJQ0VfSURfVFlQRSkgewo+ICsJCQkvKiBXaWxk Y2F0UG9pbnQgaXMgTFBUIGNvbXBhdGlibGUgKi8KPiArCQkJZGV2X3ByaXYtPnBjaF90eXBlID0g UENIX0xQVDsKPiArCQkJRFJNX0RFQlVHX0tNUygiRm91bmQgV2lsZGNhdFBvaW50IFBDSFxuIik7 Cj4gKwkJCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmCj4gKwkJCQkhSVNfQlJPQURX RUxMKGRldl9wcml2KSk7Cj4gKwkJCVdBUk5fT04oSVNfSFNXX1VMVChkZXZfcHJpdikgfHwKPiAr CQkJCUlTX0JEV19VTFQoZGV2X3ByaXYpKTsKPiArCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BD SF9XUFRfTFBfREVWSUNFX0lEX1RZUEUpIHsKPiArCQkJLyogV2lsZGNhdFBvaW50IGlzIExQVCBj b21wYXRpYmxlICovCj4gKwkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9MUFQ7Cj4gKwkJCURS TV9ERUJVR19LTVMoIkZvdW5kIFdpbGRjYXRQb2ludCBMUCBQQ0hcbiIpOwo+ICsJCQlXQVJOX09O KCFJU19IQVNXRUxMKGRldl9wcml2KSAmJgo+ICsJCQkJIUlTX0JST0FEV0VMTChkZXZfcHJpdikp Owo+ICsJCQlXQVJOX09OKCFJU19IU1dfVUxUKGRldl9wcml2KSAmJgo+ICsJCQkJIUlTX0JEV19V TFQoZGV2X3ByaXYpKTsKPiArCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9TUFRfREVWSUNF X0lEX1RZUEUpIHsKPiArCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX1NQVDsKPiArCQkJRFJN X0RFQlVHX0tNUygiRm91bmQgU3VucmlzZVBvaW50IFBDSFxuIik7Cj4gKwkJCVdBUk5fT04oIUlT X1NLWUxBS0UoZGV2X3ByaXYpICYmCj4gKwkJCQkhSVNfS0FCWUxBS0UoZGV2X3ByaXYpKTsKPiAr CQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9TUFRfTFBfREVWSUNFX0lEX1RZUEUpIHsKPiAr CQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX1NQVDsKPiArCQkJRFJNX0RFQlVHX0tNUygiRm91 bmQgU3VucmlzZVBvaW50IExQIFBDSFxuIik7Cj4gKwkJCVdBUk5fT04oIUlTX1NLWUxBS0UoZGV2 X3ByaXYpICYmCj4gKwkJCQkhSVNfS0FCWUxBS0UoZGV2X3ByaXYpKTsKPiArCQl9IGVsc2UgaWYg KGlkID09IElOVEVMX1BDSF9LQlBfREVWSUNFX0lEX1RZUEUpIHsKPiArCQkJZGV2X3ByaXYtPnBj aF90eXBlID0gUENIX0tCUDsKPiArCQkJRFJNX0RFQlVHX0tNUygiRm91bmQgS2FieSBMYWtlIFBD SCAoS0JQKVxuIik7Cj4gKwkJCVdBUk5fT04oIUlTX1NLWUxBS0UoZGV2X3ByaXYpICYmCj4gKwkJ CQkhSVNfS0FCWUxBS0UoZGV2X3ByaXYpICYmCj4gKwkJCQkhSVNfQ09GRkVFTEFLRShkZXZfcHJp dikpOwo+ICsJCX0gZWxzZSBpZiAoaWQgPT0gSU5URUxfUENIX0NOUF9ERVZJQ0VfSURfVFlQRSkg ewo+ICsJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBQQ0hfQ05QOwo+ICsJCQlEUk1fREVCVUdfS01T KCJGb3VuZCBDYW5ub24gTGFrZSBQQ0ggKENOUClcbiIpOwo+ICsJCQlXQVJOX09OKCFJU19DQU5O T05MQUtFKGRldl9wcml2KSAmJgo+ICsJCQkJIUlTX0NPRkZFRUxBS0UoZGV2X3ByaXYpKTsKPiAr CQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9DTlBfTFBfREVWSUNFX0lEX1RZUEUpIHsKPiAr CQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX0NOUDsKPiArCQkJRFJNX0RFQlVHX0tNUygiRm91 bmQgQ2Fubm9uIExha2UgTFAgUENIIChDTlAtTFApXG4iKTsKPiArCQkJV0FSTl9PTighSVNfQ0FO Tk9OTEFLRShkZXZfcHJpdikgJiYKPiArCQkJCSFJU19DT0ZGRUVMQUtFKGRldl9wcml2KSk7Cj4g KwkJfSBlbHNlIGlmIChpZCA9PSBJTlRFTF9QQ0hfSUNQX0RFVklDRV9JRF9UWVBFKSB7Cj4gKwkJ CWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9JQ1A7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkZvdW5k IEljZSBMYWtlIFBDSFxuIik7Cj4gKwkJCVdBUk5fT04oIUlTX0lDRUxBS0UoZGV2X3ByaXYpKTsK PiArCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9QMlhfREVWSUNFX0lEX1RZUEUgfHwKPiAr CQkJICAgaWQgPT0gSU5URUxfUENIX1AzWF9ERVZJQ0VfSURfVFlQRSB8fAo+ICsJCQkgICAoaWQg PT0gSU5URUxfUENIX1FFTVVfREVWSUNFX0lEX1RZUEUgJiYKPiArCQkJICAgIHBjaC0+c3Vic3lz dGVtX3ZlbmRvciA9PQo+ICsJCQkgICAgUENJX1NVQlZFTkRPUl9JRF9SRURIQVRfUVVNUkFORVQg JiYKPiArCQkJICAgIHBjaC0+c3Vic3lzdGVtX2RldmljZSA9PQo+ICsJCQkgICAgUENJX1NVQkRF VklDRV9JRF9RRU1VKSkgewo+ICsJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBpbnRlbF92aXJ0X2Rl dGVjdF9wY2goZGV2X3ByaXYpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCWNvbnRpbnVlOwo+ICAJCX0K PiArCj4gKwkJYnJlYWs7Cj4gIAl9Cj4gIAlpZiAoIXBjaCkKPiAgCQlEUk1fREVCVUdfS01TKCJO byBQQ0ggZm91bmQuXG4iKTsKPiAtLSAKPiAyLjExLjAKPiAKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==