From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init Date: Wed, 12 Dec 2018 11:08:33 -0500 Message-ID: <20181212160833.GG154160@art_vandelay> References: <20181211184224.131478-1-frkoenig@google.com> <20181211184224.131478-2-frkoenig@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk1-x741.google.com (mail-qk1-x741.google.com [IPv6:2607:f8b0:4864:20::741]) by gabe.freedesktop.org (Postfix) with ESMTPS id 278C36E963 for ; Wed, 12 Dec 2018 16:08:35 +0000 (UTC) Received: by mail-qk1-x741.google.com with SMTP id q1so11009452qkf.13 for ; Wed, 12 Dec 2018 08:08:35 -0800 (PST) Content-Disposition: inline In-Reply-To: <20181211184224.131478-2-frkoenig@google.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Fritz Koenig Cc: sean@poorly.run, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBEZWMgMTEsIDIwMTggYXQgMTA6NDI6MjFBTSAtMDgwMCwgRnJpdHogS29lbmlnIHdy b3RlOgo+IFNpbXBsaWZ5IHRoZSBpbml0aWxpemF0aW9uIG9mIGEgbGlzdCBvZiBmb3JtYXRzCj4g YnkgcGFzc2luZyB0aGUgbGlzdCBpbiBkaXJlY3RseSBpbnN0ZWFkIG9mIGNvcHlpbmcKPiBpdCBm cm9tIG9uZSBzdHJ1Y3R1cmUgdG8gYW5vdGhlci4KCkkgaGF2ZSBub3RlcyBvbiBhdCBsZWFzdCBh IGZldyBvdGhlciBpbnN0YW5jZXMgb2YgcGFzc2luZyBhIHN0cnVjdCBvZgpwYXJhbWV0ZXJzIGlu c3RlYWQgb2YganVzdCBwYXNzaW5nIHN0dWZmIGRpcmVjdGx5LiBEZWZpbml0ZWx5IGEgbmljZSBj aGFuZ2UgdGhhdApzaW1wbGlmaWVzIHRoaW5ncyBmb3IgY2FzdWFsIHJlYWRlcnMgbGlrZSB1cy4g VGhhbmtzIQoKUmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbkBwb29ybHkucnVuPgoKCj4gCj4g U2lnbmVkLW9mZi1ieTogRnJpdHogS29lbmlnIDxmcmtvZW5pZ0Bnb29nbGUuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZm9ybWF0cy5jICAgfCAgMzMgLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZm9ybWF0cy5oICAgfCAgMTQg LS0KPiAgLi4uL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5jICAgIHwgICA0 ICsKPiAgLi4uL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oICAgIHwgIDE5 ICstLQo+ICAuLi4vZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2dfZm9ybWF0LmggfCAx NTEgKysrKysrKysrLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9od191dGlsLmggICB8ICAgMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9wbGFuZS5jICAgICB8ICAyNSArKy0KPiAgNyBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25z KCspLCAxNTQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9mb3JtYXRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZm9ybWF0cy5jCj4gaW5kZXggMDg3NGYwYTUzYmY5Li5kNTNhYmM4Y2U2NzAgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Zvcm1hdHMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9mb3JtYXRzLmMKPiBAQCAtMTEz NywzNiArMTEzNywzIEBAIGNvbnN0IHN0cnVjdCBtc21fZm9ybWF0ICpkcHVfZ2V0X21zbV9mb3Jt YXQoCj4gIAkJcmV0dXJuICZmbXQtPmJhc2U7Cj4gIAlyZXR1cm4gTlVMTDsKPiAgfQo+IC0KPiAt dWludDMyX3QgZHB1X3BvcHVsYXRlX2Zvcm1hdHMoCj4gLQkJY29uc3Qgc3RydWN0IGRwdV9mb3Jt YXRfZXh0ZW5kZWQgKmZvcm1hdF9saXN0LAo+IC0JCXVpbnQzMl90ICpwaXhlbF9mb3JtYXRzLAo+ IC0JCXVpbnQ2NF90ICpwaXhlbF9tb2RpZmllcnMsCj4gLQkJdWludDMyX3QgcGl4ZWxfZm9ybWF0 c19tYXgpCj4gLXsKPiAtCXVpbnQzMl90IGksIGZvdXJjY19mb3JtYXQ7Cj4gLQo+IC0JaWYgKCFm b3JtYXRfbGlzdCB8fCAhcGl4ZWxfZm9ybWF0cykKPiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlmb3Ig KGkgPSAwLCBmb3VyY2NfZm9ybWF0ID0gMDsKPiAtCQkJZm9ybWF0X2xpc3QtPmZvdXJjY19mb3Jt YXQgJiYgaSA8IHBpeGVsX2Zvcm1hdHNfbWF4Owo+IC0JCQkrK2Zvcm1hdF9saXN0KSB7Cj4gLQkJ LyogdmVyaWZ5IGlmIGxpc3RlZCBmb3JtYXQgaXMgaW4gZHB1X2Zvcm1hdF9tYXA/ICovCj4gLQo+ IC0JCS8qIG9wdGlvbmFsbHkgcmV0dXJuIG1vZGlmaWVkIGZvcm1hdHMgKi8KPiAtCQlpZiAocGl4 ZWxfbW9kaWZpZXJzKSB7Cj4gLQkJCS8qIGFzc3VtZSBzYW1lIG1vZGlmaWVyIGZvciBhbGwgZmIg cGxhbmVzICovCj4gLQkJCXBpeGVsX2Zvcm1hdHNbaV0gPSBmb3JtYXRfbGlzdC0+Zm91cmNjX2Zv cm1hdDsKPiAtCQkJcGl4ZWxfbW9kaWZpZXJzW2krK10gPSBmb3JtYXRfbGlzdC0+bW9kaWZpZXI7 Cj4gLQkJfSBlbHNlIHsKPiAtCQkJLyogYXNzdW1lIGJhc2UgZm9ybWF0cyBncm91cGVkIHRvZ2V0 aGVyICovCj4gLQkJCWlmIChmb3VyY2NfZm9ybWF0ICE9IGZvcm1hdF9saXN0LT5mb3VyY2NfZm9y bWF0KSB7Cj4gLQkJCQlmb3VyY2NfZm9ybWF0ID0gZm9ybWF0X2xpc3QtPmZvdXJjY19mb3JtYXQ7 Cj4gLQkJCQlwaXhlbF9mb3JtYXRzW2krK10gPSBmb3VyY2NfZm9ybWF0Owo+IC0JCQl9Cj4gLQkJ fQo+IC0JfQo+IC0KPiAtCXJldHVybiBpOwo+IC19Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9mb3JtYXRzLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfZm9ybWF0cy5oCj4gaW5kZXggYTU0NDUxZDhkMDExLi5jMDJjODFlN2E2Njcg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Zvcm1hdHMu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9mb3JtYXRzLmgKPiBA QCAtNDAsMjAgKzQwLDYgQEAgY29uc3Qgc3RydWN0IG1zbV9mb3JtYXQgKmRwdV9nZXRfbXNtX2Zv cm1hdCgKPiAgCQljb25zdCB1aW50MzJfdCBmb3JtYXQsCj4gIAkJY29uc3QgdWludDY0X3QgbW9k aWZpZXJzKTsKPiAgCj4gLS8qKgo+IC0gKiBkcHVfcG9wdWxhdGVfZm9ybWF0cyAtIHBvcHVsYXRl IHRoZSBnaXZlbiBhcnJheSB3aXRoIGZvdXJjYyBjb2RlcyBzdXBwb3J0ZWQKPiAtICogQGZvcm1h dF9saXN0OiAgICAgICBwb2ludGVyIHRvIGxpc3Qgb2YgcG9zc2libGUgZm9ybWF0cwo+IC0gKiBA cGl4ZWxfZm9ybWF0czogICAgIGFycmF5IHRvIHBvcHVsYXRlIHdpdGggZm91cmNjIGNvZGVzCj4g LSAqIEBwaXhlbF9tb2RpZmllcnM6ICAgYXJyYXkgdG8gcG9wdWxhdGUgd2l0aCBkcm0gbW9kaWZp ZXJzLCBjYW4gYmUgTlVMTAo+IC0gKiBAcGl4ZWxfZm9ybWF0c19tYXg6IGxlbmd0aCBvZiBwaXhl bCBmb3JtYXRzIGFycmF5Cj4gLSAqIFJldHVybjogbnVtYmVyIG9mIGVsZW1lbnRzIHBvcHVsYXRl ZAo+IC0gKi8KPiAtdWludDMyX3QgZHB1X3BvcHVsYXRlX2Zvcm1hdHMoCj4gLQkJY29uc3Qgc3Ry dWN0IGRwdV9mb3JtYXRfZXh0ZW5kZWQgKmZvcm1hdF9saXN0LAo+IC0JCXVpbnQzMl90ICpwaXhl bF9mb3JtYXRzLAo+IC0JCXVpbnQ2NF90ICpwaXhlbF9tb2RpZmllcnMsCj4gLQkJdWludDMyX3Qg cGl4ZWxfZm9ybWF0c19tYXgpOwo+IC0KPiAgLyoqCj4gICAqIGRwdV9mb3JtYXRfY2hlY2tfbW9k aWZpZWRfZm9ybWF0IC0gdmFsaWRhdGUgZm9ybWF0IGFuZCBidWZmZXJzIGZvcgo+ICAgKiAgICAg ICAgICAgICAgICAgICBkcHUgbm9uLXN0YW5kYXJkLCBpLmUuIG1vZGlmaWVkIGZvcm1hdAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuYwo+IGluZGV4 IDUxMmFjMDgzNGQyYi4uZGY2ODUyY2M5OGI5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5jCj4gQEAgLTE1MSw3ICsxNTEsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX2Jsa3NfY29tbW9uIHNkbTg0NV9zc3BwX2NvbW1vbiA9 IHsKPiAgCQkuaWQgPSBEUFVfU1NQUF9DU0NfMTBCSVQsIFwKPiAgCQkuYmFzZSA9IDB4MWEwMCwg LmxlbiA9IDB4MTAwLH0sIFwKPiAgCS5mb3JtYXRfbGlzdCA9IHBsYW5lX2Zvcm1hdHNfeXV2LCBc Cj4gKwkubnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHBsYW5lX2Zvcm1hdHNfeXV2KSwgXAo+ICAJ LnZpcnRfZm9ybWF0X2xpc3QgPSBwbGFuZV9mb3JtYXRzLCBcCj4gKwkudmlydF9udW1fZm9ybWF0 cyA9IEFSUkFZX1NJWkUocGxhbmVfZm9ybWF0cyksIFwKPiAgCX0KPiAgCj4gICNkZWZpbmUgX0RN QV9TQkxLKG51bSwgc2RtYV9wcmkpIFwKPiBAQCAtMTYzLDcgKzE2NSw5IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHB1X3NzcHBfYmxrc19jb21tb24gc2RtODQ1X3NzcHBfY29tbW9uID0gewo+ICAJ LnNyY19ibGsgPSB7Lm5hbWUgPSBTVFJDQVQoInNzcHBfc3JjXyIsIG51bSksIFwKPiAgCQkuaWQg PSBEUFVfU1NQUF9TUkMsIC5iYXNlID0gMHgwMCwgLmxlbiA9IDB4MTUwLH0sIFwKPiAgCS5mb3Jt YXRfbGlzdCA9IHBsYW5lX2Zvcm1hdHMsIFwKPiArCS5udW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUo cGxhbmVfZm9ybWF0cyksIFwKPiAgCS52aXJ0X2Zvcm1hdF9saXN0ID0gcGxhbmVfZm9ybWF0cywg XAo+ICsJLnZpcnRfbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHBsYW5lX2Zvcm1hdHMpLCBcCj4g IAl9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92 aWdfc2Jsa18wID0gX1ZJR19TQkxLKCIwIiwgNSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oCj4gaW5kZXggMTQ0MzU4YTNkMGZiLi5hNTU2NTNi MmU0NjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3 X2NhdGFsb2cuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19j YXRhbG9nLmgKPiBAQCAtMjUxLDE3ICsyNTEsNiBAQCBzdHJ1Y3QgZHB1X3BwX2JsayB7Cj4gIAl1 MzIgdmVyc2lvbjsKPiAgfTsKPiAgCj4gLS8qKgo+IC0gKiBzdHJ1Y3QgZHB1X2Zvcm1hdF9leHRl bmRlZCAtIGRlZmluZSBkcHUgc3BlY2lmaWMgcGl4ZWwgZm9ybWF0K21vZGlmaWVyCj4gLSAqIEBm b3VyY2NfZm9ybWF0OiBCYXNlIEZPVVJDQyBwaXhlbCBmb3JtYXQgY29kZQo+IC0gKiBAbW9kaWZp ZXI6IDY0LWJpdCBkcm0gZm9ybWF0IG1vZGlmaWVyLCBzYW1lIG1vZGlmaWVyIG11c3QgYmUgYXBw bGllZCB0byBhbGwKPiAtICogICAgICAgICAgICBmcmFtZWJ1ZmZlciBwbGFuZXMKPiAtICovCj4g LXN0cnVjdCBkcHVfZm9ybWF0X2V4dGVuZGVkIHsKPiAtCXVpbnQzMl90IGZvdXJjY19mb3JtYXQ7 Cj4gLQl1aW50NjRfdCBtb2RpZmllcjsKPiAtfTsKPiAtCj4gIC8qKgo+ICAgKiBlbnVtIGRwdV9x b3NfbHV0X3VzYWdlIC0gZGVmaW5lIFFvUyBMVVQgdXNlIGNhc2VzCj4gICAqLwo+IEBAIC0zNDgs NyArMzM3LDkgQEAgc3RydWN0IGRwdV9zc3BwX2Jsa3NfY29tbW9uIHsKPiAgICogQHBjY19ibGs6 Cj4gICAqIEBpZ2NfYmxrOgo+ICAgKiBAZm9ybWF0X2xpc3Q6IFBvaW50ZXIgdG8gbGlzdCBvZiBz dXBwb3J0ZWQgZm9ybWF0cwo+ICsgKiBAbnVtX2Zvcm1hdHM6IE51bWJlciBvZiBzdXBwb3J0ZWQg Zm9ybWF0cwo+ICAgKiBAdmlydF9mb3JtYXRfbGlzdDogUG9pbnRlciB0byBsaXN0IG9mIHN1cHBv cnRlZCBmb3JtYXRzIGZvciB2aXJ0dWFsIHBsYW5lcwo+ICsgKiBAdmlydF9udW1fZm9ybWF0czog TnVtYmVyIG9mIHN1cHBvcnRlZCBmb3JtYXRzIGZvciB2aXJ0dWFsIHBsYW5lcwo+ICAgKi8KPiAg c3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHsKPiAgCWNvbnN0IHN0cnVjdCBkcHVfc3NwcF9ibGtz X2NvbW1vbiAqY29tbW9uOwo+IEBAIC0zNjYsOCArMzU3LDEwIEBAIHN0cnVjdCBkcHVfc3NwcF9z dWJfYmxrcyB7Cj4gIAlzdHJ1Y3QgZHB1X3BwX2JsayBwY2NfYmxrOwo+ICAJc3RydWN0IGRwdV9w cF9ibGsgaWdjX2JsazsKPiAgCj4gLQljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdF9leHRlbmRlZCAq Zm9ybWF0X2xpc3Q7Cj4gLQljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdF9leHRlbmRlZCAqdmlydF9m b3JtYXRfbGlzdDsKPiArCWNvbnN0IHUzMiAqZm9ybWF0X2xpc3Q7Cj4gKwl1MzIgbnVtX2Zvcm1h dHM7Cj4gKwljb25zdCB1MzIgKnZpcnRfZm9ybWF0X2xpc3Q7Cj4gKwl1MzIgdmlydF9udW1fZm9y bWF0czsKPiAgfTsKPiAgCj4gIC8qKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZ19mb3JtYXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nX2Zvcm1hdC5oCj4gaW5kZXggYzM3YmEzOGFjODNkLi5k MDk3MzA5ODU5NTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X2NhdGFsb2dfZm9ybWF0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfaHdfY2F0YWxvZ19mb3JtYXQuaAo+IEBAIC0xMiw4NCArMTIsODEgQEAKPiAgCj4g ICNpbmNsdWRlICJkcHVfaHdfbWRzcy5oIgo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcHVf Zm9ybWF0X2V4dGVuZGVkIHBsYW5lX2Zvcm1hdHNbXSA9IHsKPiAtCXtEUk1fRk9STUFUX0FSR0I4 ODg4LCAwfSwKPiAtCXtEUk1fRk9STUFUX0FCR1I4ODg4LCAwfSwKPiAtCXtEUk1fRk9STUFUX1JH QkE4ODg4LCAwfSwKPiAtCXtEUk1fRk9STUFUX0FCR1I4ODg4LCBEUk1fRk9STUFUX01PRF9RQ09N X0NPTVBSRVNTRUR9LAo+IC0Je0RSTV9GT1JNQVRfQkdSQTg4ODgsIDB9LAo+IC0Je0RSTV9GT1JN QVRfWFJHQjg4ODgsIDB9LAo+IC0Je0RSTV9GT1JNQVRfUkdCWDg4ODgsIDB9LAo+IC0Je0RSTV9G T1JNQVRfQkdSWDg4ODgsIDB9LAo+IC0Je0RSTV9GT1JNQVRfWEJHUjg4ODgsIDB9LAo+IC0Je0RS TV9GT1JNQVRfWEJHUjg4ODgsIERSTV9GT1JNQVRfTU9EX1FDT01fQ09NUFJFU1NFRH0sCj4gLQl7 RFJNX0ZPUk1BVF9SR0I4ODgsIDB9LAo+IC0Je0RSTV9GT1JNQVRfQkdSODg4LCAwfSwKPiAtCXtE Uk1fRk9STUFUX1JHQjU2NSwgMH0sCj4gLQl7RFJNX0ZPUk1BVF9CR1I1NjUsIERSTV9GT1JNQVRf TU9EX1FDT01fQ09NUFJFU1NFRH0sCj4gLQl7RFJNX0ZPUk1BVF9CR1I1NjUsIDB9LAo+IC0Je0RS TV9GT1JNQVRfQVJHQjE1NTUsIDB9LAo+IC0Je0RSTV9GT1JNQVRfQUJHUjE1NTUsIDB9LAo+IC0J e0RSTV9GT1JNQVRfUkdCQTU1NTEsIDB9LAo+IC0Je0RSTV9GT1JNQVRfQkdSQTU1NTEsIDB9LAo+ IC0Je0RSTV9GT1JNQVRfWFJHQjE1NTUsIDB9LAo+IC0Je0RSTV9GT1JNQVRfWEJHUjE1NTUsIDB9 LAo+IC0Je0RSTV9GT1JNQVRfUkdCWDU1NTEsIDB9LAo+IC0Je0RSTV9GT1JNQVRfQkdSWDU1NTEs IDB9LAo+IC0Je0RSTV9GT1JNQVRfQVJHQjQ0NDQsIDB9LAo+IC0Je0RSTV9GT1JNQVRfQUJHUjQ0 NDQsIDB9LAo+IC0Je0RSTV9GT1JNQVRfUkdCQTQ0NDQsIDB9LAo+IC0Je0RSTV9GT1JNQVRfQkdS QTQ0NDQsIDB9LAo+IC0Je0RSTV9GT1JNQVRfWFJHQjQ0NDQsIDB9LAo+IC0Je0RSTV9GT1JNQVRf WEJHUjQ0NDQsIDB9LAo+IC0Je0RSTV9GT1JNQVRfUkdCWDQ0NDQsIDB9LAo+IC0Je0RSTV9GT1JN QVRfQkdSWDQ0NDQsIDB9LAo+IC0JezAsIDB9LAo+ICtzdGF0aWMgY29uc3QgdWludDMyX3QgcWNv bV9jb21wcmVzc2VkX3N1cHBvcnRlZF9mb3JtYXRzW10gPSB7Cj4gKwlEUk1fRk9STUFUX0FCR1I4 ODg4LAo+ICsJRFJNX0ZPUk1BVF9YQkdSODg4OCwKPiArCURSTV9GT1JNQVRfQkdSNTY1LAo+ICB9 Owo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcHVfZm9ybWF0X2V4dGVuZGVkIHBsYW5lX2Zv cm1hdHNfeXV2W10gPSB7Cj4gLQl7RFJNX0ZPUk1BVF9BUkdCODg4OCwgMH0sCj4gLQl7RFJNX0ZP Uk1BVF9BQkdSODg4OCwgMH0sCj4gLQl7RFJNX0ZPUk1BVF9SR0JBODg4OCwgMH0sCj4gLQl7RFJN X0ZPUk1BVF9CR1JYODg4OCwgMH0sCj4gLQl7RFJNX0ZPUk1BVF9BQkdSODg4OCwgRFJNX0ZPUk1B VF9NT0RfUUNPTV9DT01QUkVTU0VEfSwKPiAtCXtEUk1fRk9STUFUX0JHUkE4ODg4LCAwfSwKPiAt CXtEUk1fRk9STUFUX1hSR0I4ODg4LCAwfSwKPiAtCXtEUk1fRk9STUFUX1hCR1I4ODg4LCAwfSwK PiAtCXtEUk1fRk9STUFUX1JHQlg4ODg4LCAwfSwKPiAtCXtEUk1fRk9STUFUX1hCR1I4ODg4LCBE Uk1fRk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUR9LAo+IC0Je0RSTV9GT1JNQVRfUkdCODg4LCAw fSwKPiAtCXtEUk1fRk9STUFUX0JHUjg4OCwgMH0sCj4gLQl7RFJNX0ZPUk1BVF9SR0I1NjUsIDB9 LAo+IC0Je0RSTV9GT1JNQVRfQkdSNTY1LCBEUk1fRk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUR9 LAo+IC0Je0RSTV9GT1JNQVRfQkdSNTY1LCAwfSwKPiAtCXtEUk1fRk9STUFUX0FSR0IxNTU1LCAw fSwKPiAtCXtEUk1fRk9STUFUX0FCR1IxNTU1LCAwfSwKPiAtCXtEUk1fRk9STUFUX1JHQkE1NTUx LCAwfSwKPiAtCXtEUk1fRk9STUFUX0JHUkE1NTUxLCAwfSwKPiAtCXtEUk1fRk9STUFUX1hSR0Ix NTU1LCAwfSwKPiAtCXtEUk1fRk9STUFUX1hCR1IxNTU1LCAwfSwKPiAtCXtEUk1fRk9STUFUX1JH Qlg1NTUxLCAwfSwKPiAtCXtEUk1fRk9STUFUX0JHUlg1NTUxLCAwfSwKPiAtCXtEUk1fRk9STUFU X0FSR0I0NDQ0LCAwfSwKPiAtCXtEUk1fRk9STUFUX0FCR1I0NDQ0LCAwfSwKPiAtCXtEUk1fRk9S TUFUX1JHQkE0NDQ0LCAwfSwKPiAtCXtEUk1fRk9STUFUX0JHUkE0NDQ0LCAwfSwKPiAtCXtEUk1f Rk9STUFUX1hSR0I0NDQ0LCAwfSwKPiAtCXtEUk1fRk9STUFUX1hCR1I0NDQ0LCAwfSwKPiAtCXtE Uk1fRk9STUFUX1JHQlg0NDQ0LCAwfSwKPiAtCXtEUk1fRk9STUFUX0JHUlg0NDQ0LCAwfSwKPiAr c3RhdGljIGNvbnN0IHVpbnQzMl90IHBsYW5lX2Zvcm1hdHNbXSA9IHsKPiArCURSTV9GT1JNQVRf QVJHQjg4ODgsCj4gKwlEUk1fRk9STUFUX0FCR1I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9SR0JBODg4 OCwKPiArCURSTV9GT1JNQVRfQkdSQTg4ODgsCj4gKwlEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICsJ RFJNX0ZPUk1BVF9SR0JYODg4OCwKPiArCURSTV9GT1JNQVRfQkdSWDg4ODgsCj4gKwlEUk1fRk9S TUFUX1hCR1I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9SR0I4ODgsCj4gKwlEUk1fRk9STUFUX0JHUjg4 OCwKPiArCURSTV9GT1JNQVRfUkdCNTY1LAo+ICsJRFJNX0ZPUk1BVF9CR1I1NjUsCj4gKwlEUk1f Rk9STUFUX0FSR0IxNTU1LAo+ICsJRFJNX0ZPUk1BVF9BQkdSMTU1NSwKPiArCURSTV9GT1JNQVRf UkdCQTU1NTEsCj4gKwlEUk1fRk9STUFUX0JHUkE1NTUxLAo+ICsJRFJNX0ZPUk1BVF9YUkdCMTU1 NSwKPiArCURSTV9GT1JNQVRfWEJHUjE1NTUsCj4gKwlEUk1fRk9STUFUX1JHQlg1NTUxLAo+ICsJ RFJNX0ZPUk1BVF9CR1JYNTU1MSwKPiArCURSTV9GT1JNQVRfQVJHQjQ0NDQsCj4gKwlEUk1fRk9S TUFUX0FCR1I0NDQ0LAo+ICsJRFJNX0ZPUk1BVF9SR0JBNDQ0NCwKPiArCURSTV9GT1JNQVRfQkdS QTQ0NDQsCj4gKwlEUk1fRk9STUFUX1hSR0I0NDQ0LAo+ICsJRFJNX0ZPUk1BVF9YQkdSNDQ0NCwK PiArCURSTV9GT1JNQVRfUkdCWDQ0NDQsCj4gKwlEUk1fRk9STUFUX0JHUlg0NDQ0LAo+ICt9Owo+ ICsKPiArc3RhdGljIGNvbnN0IHVpbnQzMl90IHBsYW5lX2Zvcm1hdHNfeXV2W10gPSB7Cj4gKwlE Uk1fRk9STUFUX0FSR0I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9BQkdSODg4OCwKPiArCURSTV9GT1JN QVRfUkdCQTg4ODgsCj4gKwlEUk1fRk9STUFUX0JHUlg4ODg4LAo+ICsJRFJNX0ZPUk1BVF9CR1JB ODg4OCwKPiArCURSTV9GT1JNQVRfWFJHQjg4ODgsCj4gKwlEUk1fRk9STUFUX1hCR1I4ODg4LAo+ ICsJRFJNX0ZPUk1BVF9SR0JYODg4OCwKPiArCURSTV9GT1JNQVRfUkdCODg4LAo+ICsJRFJNX0ZP Uk1BVF9CR1I4ODgsCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwKPiArCURSTV9GT1JNQVRfQkdSNTY1 LAo+ICsJRFJNX0ZPUk1BVF9BUkdCMTU1NSwKPiArCURSTV9GT1JNQVRfQUJHUjE1NTUsCj4gKwlE Uk1fRk9STUFUX1JHQkE1NTUxLAo+ICsJRFJNX0ZPUk1BVF9CR1JBNTU1MSwKPiArCURSTV9GT1JN QVRfWFJHQjE1NTUsCj4gKwlEUk1fRk9STUFUX1hCR1IxNTU1LAo+ICsJRFJNX0ZPUk1BVF9SR0JY NTU1MSwKPiArCURSTV9GT1JNQVRfQkdSWDU1NTEsCj4gKwlEUk1fRk9STUFUX0FSR0I0NDQ0LAo+ ICsJRFJNX0ZPUk1BVF9BQkdSNDQ0NCwKPiArCURSTV9GT1JNQVRfUkdCQTQ0NDQsCj4gKwlEUk1f Rk9STUFUX0JHUkE0NDQ0LAo+ICsJRFJNX0ZPUk1BVF9YUkdCNDQ0NCwKPiArCURSTV9GT1JNQVRf WEJHUjQ0NDQsCj4gKwlEUk1fRk9STUFUX1JHQlg0NDQ0LAo+ICsJRFJNX0ZPUk1BVF9CR1JYNDQ0 NCwKPiAgCj4gLQl7RFJNX0ZPUk1BVF9OVjEyLCAwfSwKPiAtCXtEUk1fRk9STUFUX05WMTIsIERS TV9GT1JNQVRfTU9EX1FDT01fQ09NUFJFU1NFRH0sCj4gLQl7RFJNX0ZPUk1BVF9OVjIxLCAwfSwK PiAtCXtEUk1fRk9STUFUX05WMTYsIDB9LAo+IC0Je0RSTV9GT1JNQVRfTlY2MSwgMH0sCj4gLQl7 RFJNX0ZPUk1BVF9WWVVZLCAwfSwKPiAtCXtEUk1fRk9STUFUX1VZVlksIDB9LAo+IC0Je0RSTV9G T1JNQVRfWVVZViwgMH0sCj4gLQl7RFJNX0ZPUk1BVF9ZVllVLCAwfSwKPiAtCXtEUk1fRk9STUFU X1lVVjQyMCwgMH0sCj4gLQl7RFJNX0ZPUk1BVF9ZVlU0MjAsIDB9LAo+IC0JezAsIDB9LAo+ICsJ RFJNX0ZPUk1BVF9OVjEyLAo+ICsJRFJNX0ZPUk1BVF9OVjIxLAo+ICsJRFJNX0ZPUk1BVF9OVjE2 LAo+ICsJRFJNX0ZPUk1BVF9OVjYxLAo+ICsJRFJNX0ZPUk1BVF9WWVVZLAo+ICsJRFJNX0ZPUk1B VF9VWVZZLAo+ICsJRFJNX0ZPUk1BVF9ZVVlWLAo+ICsJRFJNX0ZPUk1BVF9ZVllVLAo+ICsJRFJN X0ZPUk1BVF9ZVVY0MjAsCj4gKwlEUk1fRk9STUFUX1lWVTQyMCwKPiAgfTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuaCBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmgKPiBpbmRleCAzMjFmYzY0ZGRkMGUu LmVmZTcwYzUwOGVlMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfaHdfdXRpbC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2h3X3V0aWwuaAo+IEBAIC0xOCw3ICsxOCw2IEBACj4gICNpbmNsdWRlICJkcHVfaHdfbWRzcy5o Igo+ICAKPiAgI2RlZmluZSBSRUdfTUFTSyhuKSAgICAgICAgICAgICAgICAgICAgICgoQklUKG4p KSAtIDEpCj4gLXN0cnVjdCBkcHVfZm9ybWF0X2V4dGVuZGVkOwo+ICAKPiAgLyoKPiAgICogVGhp cyBpcyB0aGUgY29tbW9uIHN0cnVjdCBtYWludGFpbmVkIGJ5IGVhY2ggc3ViIGJsb2NrCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKPiBpbmRleCA2ODgyMzNkYmQ1 OTcuLjZhNDljMjUzYmJkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9wbGFuZS5jCj4gQEAgLTk1LDggKzk1LDYgQEAgc3RydWN0IGRwdV9wbGFuZSB7Cj4gIAo+ICAJ ZW51bSBkcHVfc3NwcCBwaXBlOwo+ICAJdWludDMyX3QgZmVhdHVyZXM7ICAgICAgLyogY2FwYWJp bGl0aWVzIGZyb20gY2F0YWxvZyAqLwo+IC0JdWludDMyX3QgbmZvcm1hdHM7Cj4gLQl1aW50MzJf dCBmb3JtYXRzWzY0XTsKPiAgCj4gIAlzdHJ1Y3QgZHB1X2h3X3BpcGUgKnBpcGVfaHc7Cj4gIAlz dHJ1Y3QgZHB1X2h3X3BpcGVfY2ZnIHBpcGVfY2ZnOwo+IEBAIC0xNDQ2LDExICsxNDQ0LDEyIEBA IHN0cnVjdCBkcm1fcGxhbmUgKmRwdV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAkJdW5zaWduZWQgbG9uZyBwb3NzaWJsZV9jcnRjcywgdTMyIG1hc3Rlcl9wbGFuZV9pZCkK PiAgewo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBOVUxMLCAqbWFzdGVyX3BsYW5lID0g TlVMTDsKPiAtCWNvbnN0IHN0cnVjdCBkcHVfZm9ybWF0X2V4dGVuZGVkICpmb3JtYXRfbGlzdDsK PiArCWNvbnN0IHVpbnQzMl90ICpmb3JtYXRfbGlzdDsKPiAgCXN0cnVjdCBkcHVfcGxhbmUgKnBk cHU7Cj4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiAgCXN0cnVjdCBkcHVfa21zICprbXMgPSB0b19kcHVfa21zKHByaXYtPmttcyk7Cj4gIAlpbnQg enBvc19tYXggPSBEUFVfWlBPU19NQVg7Cj4gKwl1aW50MzJfdCBudW1fZm9ybWF0czsKPiAgCWlu dCByZXQgPSAtRUlOVkFMOwo+ICAKPiAgCS8qIGNyZWF0ZSBhbmQgemVybyBsb2NhbCBzdHJ1Y3R1 cmUgKi8KPiBAQCAtMTQ5MywyMyArMTQ5MiwxNyBAQCBzdHJ1Y3QgZHJtX3BsYW5lICpkcHVfcGxh bmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCWdvdG8gY2xlYW5fc3NwcDsKPiAg CX0KPiAgCj4gLQlpZiAoIW1hc3Rlcl9wbGFuZV9pZCkKPiAtCQlmb3JtYXRfbGlzdCA9IHBkcHUt PnBpcGVfc2Jsay0+Zm9ybWF0X2xpc3Q7Cj4gLQllbHNlCj4gKwlpZiAocGRwdS0+aXNfdmlydHVh bCkgewo+ICAJCWZvcm1hdF9saXN0ID0gcGRwdS0+cGlwZV9zYmxrLT52aXJ0X2Zvcm1hdF9saXN0 Owo+IC0KPiAtCXBkcHUtPm5mb3JtYXRzID0gZHB1X3BvcHVsYXRlX2Zvcm1hdHMoZm9ybWF0X2xp c3QsCj4gLQkJCQlwZHB1LT5mb3JtYXRzLAo+IC0JCQkJMCwKPiAtCQkJCUFSUkFZX1NJWkUocGRw dS0+Zm9ybWF0cykpOwo+IC0KPiAtCWlmICghcGRwdS0+bmZvcm1hdHMpIHsKPiAtCQlEUFVfRVJS T1IoIlsldV1ubyB2YWxpZCBmb3JtYXRzIGZvciBwbGFuZVxuIiwgcGlwZSk7Cj4gLQkJZ290byBj bGVhbl9zc3BwOwo+ICsJCW51bV9mb3JtYXRzID0gcGRwdS0+cGlwZV9zYmxrLT52aXJ0X251bV9m b3JtYXRzOwo+ICsJfQo+ICsJZWxzZSB7Cj4gKwkJZm9ybWF0X2xpc3QgPSBwZHB1LT5waXBlX3Ni bGstPmZvcm1hdF9saXN0Owo+ICsJCW51bV9mb3JtYXRzID0gcGRwdS0+cGlwZV9zYmxrLT5udW1f Zm9ybWF0czsKPiAgCX0KPiAgCj4gIAlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2 LCBwbGFuZSwgMHhmZiwgJmRwdV9wbGFuZV9mdW5jcywKPiAtCQkJCXBkcHUtPmZvcm1hdHMsIHBk cHUtPm5mb3JtYXRzLAo+ICsJCQkJZm9ybWF0X2xpc3QsIG51bV9mb3JtYXRzLAo+ICAJCQkJTlVM TCwgdHlwZSwgTlVMTCk7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gY2xlYW5fc3NwcDsKPiAtLSAK PiAyLjIwLjAucmMyLjQwMy5nZGJjM2IyOTgwNS1nb29nCj4gCgotLSAKU2VhbiBQYXVsLCBTb2Z0 d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==