From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Siluvery Subject: Re: [PATCH v2] drm/i915/bdw: Check for slice, subslice and EU count for BDW Date: Tue, 8 Sep 2015 16:15:13 +0100 Message-ID: <55EEFB81.1080302@linux.intel.com> References: <1439469528-1016-1-git-send-email-lukasz.daniluk@intel.com> <1441208878-8853-1-git-send-email-lukasz.daniluk@intel.com> <55E710E1.3010107@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id B0B946E947 for ; Tue, 8 Sep 2015 08:15:15 -0700 (PDT) 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: "Daniluk, Lukasz" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gMDgvMDkvMjAxNSAxMzo1MywgRGFuaWx1aywgTHVrYXN6IHdyb3RlOgo+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBBcnVuIFNpbHV2ZXJ5IFttYWlsdG86YXJ1bi5zaWx1 dmVyeUBsaW51eC5pbnRlbC5jb21dCj4+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDIsIDIw MTUgMTc6MDgKPj4gVG86IERhbmlsdWssIEx1a2FzejsgaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+PiBTdWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW1BBVENIIHYyXSBkcm0vaTkxNS9i ZHc6IENoZWNrIGZvciBzbGljZSwgc3Vic2xpY2UgYW5kCj4+IEVVIGNvdW50IGZvciBCRFcKPj4K Pj4gT24gMDIvMDkvMjAxNSAxNjo0NywgxYF1a2FzeiBEYW5pbHVrIHdyb3RlOgo+Pj4gQWRkZWQg Y2hlY2tzIGZvciBhdmFpbGFibGUgc2xpY2VzLCBzdWJzbGljZXMgYW5kIEVVcyBmb3IgQnJvYWR3 ZWxsLgo+Pj4gVGhpcyBpbmZvcm1hdGlvbiBpcyBmaWxsZWQgaW4gaW50ZWxfZGV2aWNlX2luZm8g YW5kIGlzIGF2YWlsYWJsZSB0bwo+Pj4gdXNlciB3aXRoIEdFVF9QQVJBTS4KPj4+IEFkZGVkIGNo ZWNrcyBmb3IgZW5hYmxlZCBzbGljZXMsIHN1YnNsaWNlcyBhbmQgRVUgZm9yIEJyb2Fkd2VsbC4g VGhpcwo+Pj4gaW5mb3JtYXRpb24gaXMgYmFzZWQgb24gYXZhaWxhYmxlIGNvdW50cyBidXQgdGFr ZXMgcG93ZXIgZ2F0ZWQgc2xpY2VzCj4+PiBpbnRvIGFjY291bnQuIEl0IGNhbiBiZSByZWFkIGlu IGRlYnVnZnMuCj4+PiBJbnRyb2R1Y2UgbmV3IHJlZ2lzdGVyIGRlZmluZXMgdGhhdCBjb250YWlu IGluZm9ybWF0aW9uIG9uIHNsaWNlcyBvbgo+Pj4gQnJvYWR3ZWxsLgo+Pj4KPj4+IHYyOgo+Pj4g LSBJbnRyb2R1Y2UgR1RfU0xJQ0VfSU5GTyByZWdpc3Rlcgo+Pj4gLSBDaGFuZ2UgQnJvYWR3ZWxs IHNzZXVfZGV2aWNlX3N0YXR1cyBmdW5jdGlvbiB0byB1c2UgR1RfU0xJQ0VfSU5GTwo+Pj4gICAg IHJlZ2lzdGVyIGluc3RlYWQgb2YgUlBDUyByZWdpc3Rlcgo+Pj4gLSBVbmRvIHJlbW92YWwgb2Yg ZGV2X3ByaXYgdmFyaWFibGVzIGluIENoZXJyeXZpZXcgYW5kIEdlbjkKPj4+ICAgICBzc2V1X2Rl dmljZV9zYXR1cyBmdW5jdGlvbnMKPj4+Cj4+PiBDYzogSmVmZiBNY2dlZSA8amVmZi5tY2dlZUBp bnRlbC5jb20+Cj4+PiBTaWduZWQtb2ZmLWJ5OiDFgXVrYXN6IERhbmlsdWsgPGx1a2Fzei5kYW5p bHVrQGludGVsLmNvbT4KPj4+IC0tLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgfCAyOSArKysrKysrKysrKy0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZG1hLmMgICAgIHwgODkKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgfCAyMiArKysrKysr Ky0KPj4+ICAgIDMgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4+PiBpbmRleCAy M2E2OTMwNy4uZThhNjJlZiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+Pj4gQEAgLTQ5MzIsMTMgKzQ5MzIsMzggQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2Rldmlj ZV9zdGF0dXMoc3RydWN0Cj4+IGRybV9kZXZpY2UgKmRldiwKPj4+ICAgIAl9Cj4+PiAgICB9Cj4+ Pgo+Pj4gK3N0YXRpYyB2b2lkIGJyb2Fkd2VsbF9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPj4+ICsJCQkJCSBzdHJ1Y3Qgc3NldV9kZXZfc3RhdHVzICpzdGF0KQo+ Pj4gK3sKPj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPj4+ICsJaW50IHM7Cj4+PiArCXUzMiBzbGljZV9pbmZvID0gSTkxNV9SRUFEKEdF TjhfR1RfU0xJQ0VfSU5GTyk7Cj4+IEkgZG9uJ3Qgc2VlIHRoaXMgcmVnaXN0ZXIgKDB4MTM4MDY0 IGFzIGRlZmluZWQgYmVsb3cpIGluIGJkdyBzcGVjLgo+Pgo+Cj4gWWVzLCB0aGlzIHJlZ2lzdGVy IGlzbid0IGxpc3RlZCBpbiBzcGVjLiBJIGFtIHVuc3VyZSB3aGVuIHRoZSBmdWxsIHNwZWMgZm9y IHRoaXMgcmVnaXN0ZXIKPiB3aWxsIGJlIHB1Ymxpc2hlZC4KPgo+Pj4gKwo+Pj4gKwlzdGF0LT5z bGljZV90b3RhbCA9Cj4+PiArCQlod2VpZ2h0MzIoc2xpY2VfaW5mbyAmIEdFTjhfTFNMSUNFU1RB VF9NQVNLKTsKPj4KPj4gd2h5IG5vdCBpbiBhIHNpbmdsZSBsaW5lLCBzZWVtcyB0byBmaXQgdW5k ZXIgODAgY2hhcnMuCj4+Cj4KPiBJIHdhcyB1c2luZyBsb25nZXIgZGVmaW5lIG5hbWUgYW5kIGRp ZG4ndCByZWNoZWNrIGlmIHRoaXMgbGluZSBmaXRzIHVuZGVyIDgwLiBUaGFua3MgZm9yIGNhdGNo Lgo+Cj4+PiArCj4+PiArCWlmIChzdGF0LT5zbGljZV90b3RhbCkKPj4+ICsJewo+Pj4gKwkJc3Rh dC0+c3Vic2xpY2VfcGVyX3NsaWNlID0gSU5URUxfSU5GTyhkZXYpLT5zdWJzbGljZV9wZXJfc2xp Y2U7Cj4+PiArCQlzdGF0LT5ldV9wZXJfc3Vic2xpY2UgPSBJTlRFTF9JTkZPKGRldiktPmV1X3Bl cl9zdWJzbGljZTsKPj4+ICsJCXN0YXQtPnN1YnNsaWNlX3RvdGFsID0gc3RhdC0+c2xpY2VfdG90 YWwgKiBzdGF0LQo+Pj4gc3Vic2xpY2VfcGVyX3NsaWNlOwo+Pj4gKwkJc3RhdC0+ZXVfdG90YWwg PSBzdGF0LT5ldV9wZXJfc3Vic2xpY2UgKiBzdGF0LT5zdWJzbGljZV90b3RhbDsKPj4+ICsKPj4g UGxlYXNlIHJlb3JkZXIgc3VjaCB0aGF0IGFsbCBzdWJzbGljZSB2YWx1ZXMgYXJlIHBvcHVsYXRl ZCBmaXJzdCBmb2xsb3dlZCBieSBFVXMKPj4gdG8gZm9sbG93IGFuIG9yZGVyLgo+Pgo+Cj4gT2th eS4gTXkgaWRlYSB3YXMgdG8gb3JkZXIgdGhlbSBiYXNlZCBvbiB3aGVyZSB2YWx1ZSBjb21lcyBm cm9tIChpcyBpdCBjb21wdXRlZCBoZXJlIG9yCj4gc2ltcGx5IHJlYWQgd2l0aCBJTlRFTF9JTkZP KS4KPgo+Pj4gKwkJLyogc3VidHJhY3QgZnVzZWQgb2ZmIEVVKHMpIGZyb20gZW5hYmxlZCBzbGlj ZShzKSAqLwo+Pj4gKwkJZm9yIChzID0gMDsgcyA8IHN0YXQtPnNsaWNlX3RvdGFsOyBzKyspIHsK Pj4+ICsJCQl1OCBzdWJzbGljZV83ZXUgPSBJTlRFTF9JTkZPKGRldiktPnN1YnNsaWNlXzdldVtz XTsKPj4+ICsJCQlzdGF0LT5ldV90b3RhbCAtPSBod2VpZ2h0OChzdWJzbGljZV83ZXUpOwo+Pj4g KwkJfQo+Pj4gKwl9Cj4+PiArfQo+Pj4gKwo+Pj4gICAgc3RhdGljIGludCBpOTE1X3NzZXVfc3Rh dHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+Pj4gICAgewo+Pj4gICAgCXN0 cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5mb19ub2RlICopIG0tPnBy aXZhdGU7Cj4+PiAgICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7 Cj4+PiAgICAJc3RydWN0IHNzZXVfZGV2X3N0YXR1cyBzdGF0Owo+Pj4KPj4+IC0JaWYgKChJTlRF TF9JTkZPKGRldiktPmdlbiA8IDgpIHx8IElTX0JST0FEV0VMTChkZXYpKQo+Pj4gKwlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPCA4KQo+Pj4gICAgCQlyZXR1cm4gLUVOT0RFVjsKPj4+Cj4+PiAg ICAJc2VxX3B1dHMobSwgIlNTRVUgRGV2aWNlIEluZm9cbiIpOwo+Pj4gQEAgLTQ5NjMsNiArNDk4 OCw4IEBAIHN0YXRpYyBpbnQgaTkxNV9zc2V1X3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQKPj4gKnVudXNlZCkKPj4+ICAgIAltZW1zZXQoJnN0YXQsIDAsIHNpemVvZihzdGF0KSk7Cj4+ PiAgICAJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+Pj4gICAgCQljaGVycnl2aWV3X3NzZXVf ZGV2aWNlX3N0YXR1cyhkZXYsICZzdGF0KTsKPj4+ICsJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwo ZGV2KSkgewo+Pj4gKwkJYnJvYWR3ZWxsX3NzZXVfZGV2aWNlX3N0YXR1cyhkZXYsICZzdGF0KTsK Pj4+ICAgIAl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPj4+ICAgIAkJ Z2VuOV9zc2V1X2RldmljZV9zdGF0dXMoZGV2LCAmc3RhdCk7Cj4+PiAgICAJfQo+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPj4+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kbWEuYyBpbmRleCBhYjM3ZDExLi4yZDUyYjFlIDEwMDY0NAo+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kbWEuYwo+Pj4gQEAgLTcwNSw2ICs3MDUsOTMgQEAgc3RhdGljIHZvaWQg Z2VuOV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2RldmljZQo+PiAqZGV2KQo+Pj4gICAgCWlu Zm8tPmhhc19ldV9wZyA9IChpbmZvLT5ldV9wZXJfc3Vic2xpY2UgPiAyKTsKPj4+ICAgIH0KPj4+ Cj4+PiArc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpIHsKPj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPj4+ICsJc3RydWN0IGludGVsX2RldmljZV9pbmZvICppbmZvOwo+Pj4g Kwljb25zdCBpbnQgc19tYXggPSAzLCBzc19tYXggPSAzLCBldV9tYXggPSA4Owo+PiBJIG9ubHkg c2VlIG1heCBvZiAyIHNsaWNlcyBmb3IgYmR3IGluIHNwZWMuCj4+Cj4KPiBSZWdpc3RlciB2YWx1 ZXMgYXNzdW1lIHRoYXQgdGhlcmUgY2FuIGJlIDMgc2xpY2VzIChzbGljZSAwLDEgYW5kIDIpIGFu ZCB0aGF04oCZcyB3aHkKPiBJIHVzZWQgMyBoZXJlIGFzIG1heCBzbGljZXMgY291bnQuCj4KPj4+ ICsJaW50IHMsIHNzOwo+Pj4gKwl1MzIgZnVzZTIsIGV1X2Rpc2FibGVbc19tYXhdLCBzX2VuYWJs ZSwgc3NfZGlzYWJsZTsKPj4+ICsKPj4+ICsJZnVzZTIgPSBJOTE1X1JFQUQoR0VOOF9GVVNFMik7 Cj4+PiArCXNfZW5hYmxlID0gKGZ1c2UyICYgR0VOOF9GMl9TX0VOQV9NQVNLKSA+Pgo+Pj4gKwkJ R0VOOF9GMl9TX0VOQV9TSElGVDsKPj4+ICsJc3NfZGlzYWJsZSA9IChmdXNlMiAmIEdFTjhfRjJf U1NfRElTX01BU0spID4+Cj4+PiArCQlHRU44X0YyX1NTX0RJU19TSElGVDsKPj4+ICsKPj4+ICsJ ZXVfZGlzYWJsZVswXSA9IEk5MTVfUkVBRChHRU44X0VVX0RJU0FCTEUwKSAmCj4+PiArCQlHRU44 X0VVX0RJUzBfUzBfTUFTSzsKPj4+ICsJZXVfZGlzYWJsZVsxXSA9IChJOTE1X1JFQUQoR0VOOF9F VV9ESVNBQkxFMCkgPj4KPj4+ICsJCQlHRU44X0VVX0RJUzBfUzFfU0hJRlQpIHwKPj4+ICsJCSgo STkxNV9SRUFEKEdFTjhfRVVfRElTQUJMRTEpICYKPj4+ICsJCSAgR0VOOF9FVV9ESVMxX1MxX01B U0spIDw8Cj4+PiArCQkgKDMyIC0gR0VOOF9FVV9ESVMwX1MxX1NISUZUKSk7Cj4+PiArCWV1X2Rp c2FibGVbMl0gPSAoSTkxNV9SRUFEKEdFTjhfRVVfRElTQUJMRTEpID4+Cj4+PiArCQkJR0VOOF9F VV9ESVMxX1MyX1NISUZUKSB8Cj4+PiArCQkoKEk5MTVfUkVBRChHRU44X0VVX0RJU0FCTEUyKSAm Cj4+PiArCQkgIEdFTjhfRVVfRElTMl9TMl9NQVNLKSA8PAo+Pj4gKwkJICgzMiAtIEdFTjhfRVVf RElTMV9TMl9TSElGVCkpOwo+Pj4gKwo+Pgo+PiBHRU45X0VVX0RJU0FCTEUoc2xpY2UpIGlzIGFs cmVhZHkgYXZhaWxhYmxlLCBzaW5jZSB0aGUgcmVnaXN0ZXIgYWRkcmVzc2VzIGFyZQo+PiBzYW1l IG1heWJlIGl0IGNhbiBiZSByZXVzZWQgYWZ0ZXIgcmVuYW1pbmcgaXQgdG8gR0VOOCBpbnN0ZWFk IG9mIGNyZWF0aW5nIG5ldwo+PiBkZWZpbml0aW9ucz8gb2Zjb3Vyc2Ugc2hpZnQvbWFzayBhcmUg ZGlmZmVyZW50Lgo+Cj4gSSB3b3VsZG4ndCB1c2UgcmVuYW1pbmcgb2YgcmVnaXN0ZXIgZnJvbSBv dGhlciBnZW5lcmF0aW9uLiBTaW5jZSBjb250ZW50cyBvZiB0aGlzIHJlZ2lzdGVyCj4gYXJlIHJl YWQgaW4gZGlmZmVyZW50IHdheSBJIHRyZWF0ZWQgdGhlc2UgYXMgZGlmZmVyZW50IHJlZ2lzdGVy cyBhbmQgdGhhdOKAmXMgd2h5IEkgY2hvb3NlCj4gdG8gY3JlYXRlIG5ldyBkZWZpbmUgd2l0aG91 dCBhbnkgcmVmZXJlbmNlcyB0byBHRU45IHJlZ2lzdGVyLiBIb3dldmVyLCBpZiB0aGUgcmVuYW1p bmcKPiAob3IgZXZlbiB1c2luZyBleGlzdGluZyBkZWZpbmUpIGlzIHByZWZlcnJlZCBhcHByb2Fj aCBJIHdpbGwgbW9kaWZ5IHRoZSBwYXRjaC4KCk5vcm1hbGx5IHdlIGNyZWF0ZSBhIG5ldyBkZWZp bmUgZm9yIG5ld2VyIEdlbiBpZiB0aGUgZXhpc3Rpbmcgb25lIGNhbm5vdCAKYmUgcmV1c2VkLCBp biB0aGlzIGNhc2UgaXQgaXMgdGhlIG9wcG9zaXRlLCBJIGFtIG5vdCBzdXJlIHdoYXQgaXMgYmVz dCAKd2F5IHRvIGhhbmRsZSB0aGlzLCBiZXR0ZXIgdG8gY2hlY2sgd2l0aCBEYW5pZWwuCgpyZWdh cmRzCkFydW4KCj4KPj4KPj4gSW5kZW50YXRpb24gaXMgb2ZmLCBpbiBnZW5lcmFsIHBsZWFzZSB1 c2UgKCkgdG8gZm9yY2UgaW5kZW50YXRpb24uCj4+IGZpcnN0IHR3byBzdGF0ZW1lbnRzIGNhbiBm aXQgaW4gc2luZ2xlIGxpbmUuCj4+Cj4+IHJlZ2FyZHMKPj4gQXJ1bgo+Pgo+Cj4gVGhhbmsgeW91 IGZvciBxdWVzdGlvbnMgYW5kIHN0eWxlIHN1Z2dlc3Rpb25zLiBJIHdpbGwgcmVmb3JtYXQgdGhl IGxpbmVzIGJlZm9yZSBzdWJtaXR0aW5nCj4gdXBkYXRlZCBwYXRjaC4KPgo+IC0tLQo+IMWBdWth c3ogRGFuaWx1awo+Cj4+PiArCj4+PiArCWluZm8gPSAoc3RydWN0IGludGVsX2RldmljZV9pbmZv ICopJmRldl9wcml2LT5pbmZvOwo+Pj4gKwlpbmZvLT5zbGljZV90b3RhbCA9IGh3ZWlnaHQzMihz X2VuYWJsZSk7Cj4+PiArCj4+PiArCS8qCj4+PiArCSAqIFRoZSBzdWJzbGljZSBkaXNhYmxlIGZp ZWxkIGlzIGdsb2JhbCwgaS5lLiBpdCBhcHBsaWVzCj4+PiArCSAqIHRvIGVhY2ggb2YgdGhlIGVu YWJsZWQgc2xpY2VzLgo+Pj4gKwkgKi8KPj4+ICsJaW5mby0+c3Vic2xpY2VfcGVyX3NsaWNlID0g c3NfbWF4IC0gaHdlaWdodDMyKHNzX2Rpc2FibGUpOwo+Pj4gKwlpbmZvLT5zdWJzbGljZV90b3Rh bCA9IGluZm8tPnNsaWNlX3RvdGFsICoKPj4+ICsJCWluZm8tPnN1YnNsaWNlX3Blcl9zbGljZTsK Pj4+ICsKPj4+ICsJLyoKPj4+ICsJICogSXRlcmF0ZSB0aHJvdWdoIGVuYWJsZWQgc2xpY2VzIGFu ZCBzdWJzbGljZXMgdG8KPj4+ICsJICogY291bnQgdGhlIHRvdGFsIGVuYWJsZWQgRVUuCj4+PiAr CSAqLwo+Pj4gKwlmb3IgKHMgPSAwOyBzIDwgc19tYXg7IHMrKykgewo+Pj4gKwkJaWYgKCEoc19l bmFibGUgJiAoMHgxIDw8IHMpKSkKPj4+ICsJCQkvKiBza2lwIGRpc2FibGVkIHNsaWNlICovCj4+ PiArCQkJY29udGludWU7Cj4+PiArCj4+PiArCQlmb3IgKHNzID0gMDsgc3MgPCBzc19tYXg7IHNz KyspIHsKPj4+ICsJCQl1MzIgbl9kaXNhYmxlZDsKPj4+ICsKPj4+ICsJCQlpZiAoc3NfZGlzYWJs ZSAmICgweDEgPDwgc3MpKQo+Pj4gKwkJCQkvKiBza2lwIGRpc2FibGVkIHN1YnNsaWNlICovCj4+ PiArCQkJCWNvbnRpbnVlOwo+Pj4gKwo+Pj4gKwkJCW5fZGlzYWJsZWQgPSBod2VpZ2h0OChldV9k aXNhYmxlW3NdID4+Cj4+PiArCQkJCQkoc3MgKiBldV9tYXgpKTsKPj4+ICsKPj4+ICsJCQkvKgo+ Pj4gKwkJCSAqIFJlY29yZCB3aGljaCBzdWJzbGljZShzKSBoYXMoaGF2ZSkgNyBFVXMuIHdlCj4+ PiArCQkJICogY2FuIHR1bmUgdGhlIGhhc2ggdXNlZCB0byBzcHJlYWQgd29yayBhbW9uZwo+Pj4g KwkJCSAqIHN1YnNsaWNlcyBpZiB0aGV5IGFyZSB1bmJhbGFuY2VkLgo+Pj4gKwkJCSAqLwo+Pj4g KwkJCWlmIChldV9tYXggLSBuX2Rpc2FibGVkID09IDcpCj4+PiArCQkJCWluZm8tPnN1YnNsaWNl XzdldVtzXSB8PSAxIDw8IHNzOwo+Pj4gKwo+Pj4gKwkJCWluZm8tPmV1X3RvdGFsICs9IGV1X21h eCAtIG5fZGlzYWJsZWQ7Cj4+PiArCQl9Cj4+PiArCX0KPj4+ICsKPj4+ICsJLyoKPj4+ICsJICog QkRXIGlzIGV4cGVjdGVkIHRvIGFsd2F5cyBoYXZlIGEgdW5pZm9ybSBkaXN0cmlidXRpb24gb2Yg RVUgYWNyb3NzCj4+PiArCSAqIHN1YnNsaWNlcyB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCBhbnkg b25lIEVVIGluIGFueSBvbmUgc3Vic2xpY2UgbWF5Cj4+PiArCSAqIGJlIGZ1c2VkIG9mZiBmb3Ig ZGllIHJlY292ZXJ5Lgo+Pj4gKwkgKi8KPj4+ICsJaW5mby0+ZXVfcGVyX3N1YnNsaWNlID0gaW5m by0+c3Vic2xpY2VfdG90YWwgPwo+Pj4gKwkJRElWX1JPVU5EX1VQKGluZm8tPmV1X3RvdGFsLCBp bmZvLT5zdWJzbGljZV90b3RhbCkgOiAwOwo+Pj4gKwo+Pj4gKwkvKgo+Pj4gKwkgKiBCRFcgc3Vw cG9ydHMgc2xpY2UgcG93ZXIgZ2F0aW5nIG9uIGRldmljZXMgd2l0aCBtb3JlIHRoYW4KPj4+ICsJ ICogb25lIHNsaWNlLgo+Pj4gKwkgKi8KPj4+ICsJaW5mby0+aGFzX3NsaWNlX3BnID0gKGluZm8t PnNsaWNlX3RvdGFsID4gMSk7Cj4+PiArCWluZm8tPmhhc19zdWJzbGljZV9wZyA9IDA7Cj4+PiAr CWluZm8tPmhhc19ldV9wZyA9IDA7Cj4+PiArfQo+Pj4gKwo+Pj4gICAgLyoKPj4+ICAgICAqIERl dGVybWluZSB2YXJpb3VzIGludGVsX2RldmljZV9pbmZvIGZpZWxkcyBhdCBydW50aW1lLgo+Pj4g ICAgICoKPj4+IEBAIC03NzUsNiArODYyLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGV2aWNlX2lu Zm9fcnVudGltZV9pbml0KHN0cnVjdAo+PiBkcm1fZGV2aWNlICpkZXYpCj4+PiAgICAJLyogSW5p dGlhbGl6ZSBzbGljZS9zdWJzbGljZS9FVSBpbmZvICovCj4+PiAgICAJaWYgKElTX0NIRVJSWVZJ RVcoZGV2KSkKPj4+ICAgIAkJY2hlcnJ5dmlld19zc2V1X2luZm9faW5pdChkZXYpOwo+Pj4gKwll bHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSkKPj4+ICsJCWJyb2Fkd2VsbF9zc2V1X2luZm9faW5p dChkZXYpOwo+Pj4gICAgCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCj4+PiAg ICAJCWdlbjlfc3NldV9pbmZvX2luaXQoZGV2KTsKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oIGluZGV4IGJlODdlM2IuLjM3ZjY1OGYgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4+PiBAQCAtMTg0MSwxMSArMTg0MSwyNiBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dl bGxzIHsKPj4+ICAgICNkZWZpbmUgICBDSFZfRkdUX0VVX0RJU19TUzFfUjFfTUFTSwkoMHhmIDw8 Cj4+IENIVl9GR1RfRVVfRElTX1NTMV9SMV9TSElGVCkKPj4+Cj4+PiAgICAjZGVmaW5lIEdFTjhf RlVTRTIJCQkweDkxMjAKPj4+ICsjZGVmaW5lICAgR0VOOF9GMl9TU19ESVNfU0hJRlQJCTIxCj4+ PiArI2RlZmluZSAgIEdFTjhfRjJfU1NfRElTX01BU0sJCSgweDcgPDwKPj4gR0VOOF9GMl9TU19E SVNfU0hJRlQpCj4+PiAgICAjZGVmaW5lICAgR0VOOF9GMl9TX0VOQV9TSElGVAkJMjUKPj4+ICAg ICNkZWZpbmUgICBHRU44X0YyX1NfRU5BX01BU0sJCSgweDcgPDwKPj4gR0VOOF9GMl9TX0VOQV9T SElGVCkKPj4+Cj4+PiAtI2RlZmluZSAgIEdFTjlfRjJfU1NfRElTX1NISUZUCQkyMAo+Pj4gLSNk ZWZpbmUgICBHRU45X0YyX1NTX0RJU19NQVNLCQkoMHhmIDw8Cj4+IEdFTjlfRjJfU1NfRElTX1NI SUZUKQo+Pj4gKyNkZWZpbmUgR0VOOF9FVV9ESVNBQkxFMAkJMHg5MTM0Cj4+PiArI2RlZmluZSAg IEdFTjhfRVVfRElTMF9TMF9NQVNLCQkweGZmZmZmZgo+Pj4gKyNkZWZpbmUgICBHRU44X0VVX0RJ UzBfUzFfU0hJRlQJCTI0Cj4+PiArI2RlZmluZSAgIEdFTjhfRVVfRElTMF9TMV9NQVNLCQkoMHhm ZiA8PAo+PiBHRU44X0VVX0RJUzBfUzFfU0hJRlQpCj4+PiArCj4+PiArI2RlZmluZSBHRU44X0VV X0RJU0FCTEUxCQkweDkxMzgKPj4+ICsjZGVmaW5lICAgR0VOOF9FVV9ESVMxX1MxX01BU0sJCTB4 ZmZmZgo+Pj4gKyNkZWZpbmUgICBHRU44X0VVX0RJUzFfUzJfU0hJRlQJCTE2Cj4+PiArI2RlZmlu ZSAgIEdFTjhfRVVfRElTMV9TMl9NQVNLCQkoMHhmZmZmIDw8Cj4+IEdFTjhfRVVfRElTMV9TMl9T SElGVCkKPj4+ICsKPj4+ICsjZGVmaW5lIEdFTjhfRVVfRElTQUJMRTIJCTB4OTEzYwo+Pj4gKyNk ZWZpbmUgICBHRU44X0VVX0RJUzJfUzJfTUFTSwkJMHhmZgo+Pj4gKwo+Pj4gKyNkZWZpbmUgR0VO OV9GMl9TU19ESVNfU0hJRlQJCTIwCj4+PiArI2RlZmluZSBHRU45X0YyX1NTX0RJU19NQVNLCQko MHhmIDw8Cj4+IEdFTjlfRjJfU1NfRElTX1NISUZUKQo+Pj4KPj4+ICAgICNkZWZpbmUgR0VOOV9F VV9ESVNBQkxFKHNsaWNlKQkJKDB4OTEzNCArIChzbGljZSkqMHg0KQo+Pj4KPj4+IEBAIC02ODIy LDYgKzY4MzcsOSBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPj4+ICAgICNkZWZpbmUg ICBHRU42X1JDNgkJCTMKPj4+ICAgICNkZWZpbmUgICBHRU42X1JDNwkJCTQKPj4+Cj4+PiArI2Rl ZmluZSBHRU44X0dUX1NMSUNFX0lORk8JCTB4MTM4MDY0Cj4+PiArI2RlZmluZSAgIEdFTjhfTFNM SUNFU1RBVF9NQVNLCQkweDcKPj4+ICsKPj4+ICAgICNkZWZpbmUgQ0hWX1BPV0VSX1NTMF9TSUcx CQkweGE3MjAKPj4+ICAgICNkZWZpbmUgQ0hWX1BPV0VSX1NTMV9TSUcxCQkweGE3MjgKPj4+ICAg ICNkZWZpbmUgICBDSFZfU1NfUEdfRU5BQkxFCQkoMTw8MSkKPj4+Cj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==