From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: Re: [PATCH] drm/rockchip: Add AFBC support Date: Wed, 25 Sep 2019 09:35:01 +0000 Message-ID: <20190925093500.GB21018@arm.com> References: <20190923122014.18229-1-andrzej.p@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190923122014.18229-1-andrzej.p@collabora.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Pietrasiewicz Cc: nd , Tomeu Vizoso , David Airlie , Ezequiel Garcia , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-rockchip@lists.infradead.org" , Maxime Ripard , "kernel@collabora.com" , Sean Paul , "linux-arm-kernel@lists.infradead.org" List-Id: linux-rockchip.vger.kernel.org T24gTW9uLCBTZXAgMjMsIDIwMTkgYXQgMDI6MjA6MTNQTSArMDIwMCwgQW5kcnplaiBQaWV0cmFz aWV3aWN6IHdyb3RlOgo+IEZyb206IEV6ZXF1aWVsIEdhcmNpYSA8ZXplcXVpZWxAY29sbGFib3Jh LmNvbT4KPiAKPiBBRkJDIGlzIGEgcHJvcHJpZXRhcnkgbG9zc2xlc3MgaW1hZ2UgY29tcHJlc3Np b24gcHJvdG9jb2wgYW5kIGZvcm1hdC4KPiBJdCBoZWxwcyByZWR1Y2UgbWVtb3J5IGJhbmR3aWR0 aCBvZiB0aGUgZ3JhcGhpY3MgcGlwZWxpbmUgb3BlcmF0aW9ucy4KPiBUaGlzLCBpbiB0dXJuLCBp bXByb3ZlcyBwb3dlciBlZmZpY2llbmN5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEV6ZXF1aWVsIEdh cmNpYSA8ZXplcXVpZWxAY29sbGFib3JhLmNvbT4KPiBbbG9ja2luZyBpbXByb3ZlbWVudHNdCj4g U2lnbmVkLW9mZi1ieTogVG9tZXUgVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT4K PiBbc3F1YXNoaW5nIHRoZSBhYm92ZSwgY29tbWl0IG1lc3NhZ2UgYW5kIFJvY2tjaGlwIEFGQkMg bW9kaWZpZXJdCj4gU2lnbmVkLW9mZi1ieTogQW5kcnplaiBQaWV0cmFzaWV3aWN6IDxhbmRyemVq LnBAY29sbGFib3JhLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV9mYi5jICB8IDI3ICsrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX3ZvcC5jIHwgOTQgKysrKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmggfCAxMiArKysKPiAgZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYyB8IDE4ICsrKysKPiAgaW5jbHVkZS91YXBp L2RybS9kcm1fZm91cmNjLmggICAgICAgICAgICAgICB8ICAzICsKPiAgNSBmaWxlcyBjaGFuZ2Vk LCAxNTEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5jIGIvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5jCj4gaW5kZXggNjRjYTg3Y2Y2ZDUwLi41MTc4OTM5 YTljMjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2Ry bV9mYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5j Cj4gQEAgLTI0LDYgKzI0LDI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy X2Z1bmNzIHJvY2tjaGlwX2RybV9mYl9mdW5jcyA9IHsKPiAgCS5kaXJ0eQkgICAgICAgPSBkcm1f YXRvbWljX2hlbHBlcl9kaXJ0eWZiLAo+ICB9Owo+ICAKPiArc3RhdGljIGludAo+ICtyb2NrY2hp cF92ZXJpZnlfYWZiY19tb2Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJIGNvbnN0IHN0 cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKPiArewo+ICsJaWYgKG1vZGVfY21kLT5t b2RpZmllclswXSAmCj4gKwkgICAgfkRSTV9GT1JNQVRfTU9EX0FSTV9BRkJDKEFGQkNfRk9STUFU X01PRF9ST0NLQ0hJUCkpIHsKPiArCQlEUk1fREVWX0VSUk9SKGRldi0+ZGV2LAo+ICsJCQkgICAg ICAiVW5zdXBwb3J0ZWQgZm9ybWF0IG1vZGlmaWVyIDB4JWxseFxuIiwKPiArCQkJICAgICAgbW9k ZV9jbWQtPm1vZGlmaWVyWzBdKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwlp ZiAobW9kZV9jbWQtPndpZHRoID4gMjU2MCkgewo+ICsJCURSTV9ERVZfRVJST1IoZGV2LT5kZXYs Cj4gKwkJCSAgICAgICJVbnN1cHBvcnRlZCB3aWR0aCAlZFxuIiwgbW9kZV9jbWQtPndpZHRoKTsK PiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCkkgdGhpbmsgeW91IGFyZSBtaXNzaW5nIG9u ZSBhZGRpdGlvbmFsIGNoZWNrIGhlcmUuCmZyYW1lYnVmZmVyIHdpZHRoIGFuZCBoZWlnaHQgc2hv dWxkIGJlIGFsaWduZWQgdG8gMTYgcGl4ZWxzIGFzIHlvdSBhcmUKdXNpbmcgQUZCQ19GT1JNQVRf TU9EX0JMT0NLX1NJWkVfMTZ4MTYuClBsZWFzZSBoYXZlIGEgbG9vayBhdCBtYWxpZHBfdmVyaWZ5 X2FmYmNfZnJhbWVidWZmZXJfY2FwcygpCgo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gIHN0YXRp YyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKPiAgcm9ja2NoaXBfZmJfYWxsb2Moc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+ ICAJCSAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2JqLCB1bnNpZ25lZCBpbnQgbnVtX3BsYW5l cykKPiBAQCAtMzIsNiArNTMsMTIgQEAgcm9ja2NoaXBfZmJfYWxsb2Moc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY20KPiAgCWludCBy ZXQ7Cj4gIAlpbnQgaTsKPiAgCj4gKwlpZiAobW9kZV9jbWQtPm1vZGlmaWVyWzBdKSB7Cj4gKwkJ cmV0ID0gcm9ja2NoaXBfdmVyaWZ5X2FmYmNfbW9kKGRldiwgbW9kZV9jbWQpOwo+ICsJCWlmIChy ZXQpCj4gKwkJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gKwl9Cj4gKwo+ICAJZmIgPSBremFsbG9j KHNpemVvZigqZmIpLCBHRlBfS0VSTkVMKTsKPiAgCWlmICghZmIpCj4gIAkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3Zv cC5jCj4gaW5kZXggMjFiNjhlZWE0NmNjLi41MGJmMjE0ZDIxZGEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPiBAQCAtNDYsNiArNDYsMTMgQEAK PiAgCQl2b3BfcmVnX3NldCh2b3AsICZ3aW4tPnBoeS0+c2NsLT5leHQtPm5hbWUsIFwKPiAgCQkJ ICAgIHdpbi0+YmFzZSwgfjAsIHYsICNuYW1lKQo+ICAKPiArI2RlZmluZSBWT1BfQUZCQ19TRVQo eCwgbmFtZSwgdikgXAo+ICsJZG8geyBcCj4gKwkJaWYgKHZvcC0+ZGF0YS0+YWZiYykgXAo+ICsJ CQl2b3BfcmVnX3NldCh2b3AsICZ2b3AtPmRhdGEtPmFmYmMtPm5hbWUsIFwKPiArCQkJCTAsIH4w LCB2LCAjbmFtZSk7IFwKPiArCX0gd2hpbGUgKDApCj4gKwo+ICAjZGVmaW5lIFZPUF9XSU5fWVVW MllVVl9TRVQodm9wLCB3aW5feXV2Mnl1diwgbmFtZSwgdikgXAo+ICAJZG8geyBcCj4gIAkJaWYg KHdpbl95dXYyeXV2ICYmIHdpbl95dXYyeXV2LT5uYW1lLm1hc2spIFwKPiBAQCAtMTIzLDYgKzEz MCw4IEBAIHN0cnVjdCB2b3Agewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXY7Cj4gIAli b29sIGlzX2VuYWJsZWQ7Cj4gIAo+ICsJc3RydWN0IHZvcF93aW4gKmFmYmNfd2luOwo+ICsKPiAg CXN0cnVjdCBjb21wbGV0aW9uIGRzcF9ob2xkX2NvbXBsZXRpb247Cj4gIAo+ICAJLyogcHJvdGVj dGVkIGJ5IGRldi0+ZXZlbnRfbG9jayAqLwo+IEBAIC0yNDUsNiArMjU0LDMwIEBAIHN0YXRpYyBi b29sIGhhc19yYl9zd2FwcGVkKHVpbnQzMl90IGZvcm1hdCkKPiAgCX0KPiAgfQo+ICAKPiArI2Rl ZmluZSBBRkJDX0ZNVF9SR0I1NjUgICAgICAgIDB4MAo+ICsjZGVmaW5lIEFGQkNfRk1UX1U4VThV OFU4ICAgICAgMHg1Cj4gKyNkZWZpbmUgQUZCQ19GTVRfVThVOFU4ICAgICAgICAweDQKPiArCj4g K3N0YXRpYyBpbnQgdm9wX2NvbnZlcnRfYWZiY19mb3JtYXQodWludDMyX3QgZm9ybWF0KQo+ICt7 Cj4gKwlzd2l0Y2ggKGZvcm1hdCkgewo+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ICsJ Y2FzZSBEUk1fRk9STUFUX0FSR0I4ODg4Ogo+ICsJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4Ogo+ ICsJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+ICsJCXJldHVybiBBRkJDX0ZNVF9VOFU4VThV ODsKPiArCWNhc2UgRFJNX0ZPUk1BVF9SR0I4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfQkdSODg4 Ogo+ICsJCXJldHVybiBBRkJDX0ZNVF9VOFU4VTg7Cj4gKwljYXNlIERSTV9GT1JNQVRfUkdCNTY1 Ogo+ICsJY2FzZSBEUk1fRk9STUFUX0JHUjU2NToKPiArCQlyZXR1cm4gQUZCQ19GTVRfUkdCNTY1 Owo+ICsJZGVmYXVsdDoKPiArCQlEUk1fRVJST1IoInVuc3VwcG9ydGVkIGFmYmMgZm9ybWF0WyUw OHhdXG4iLCBmb3JtYXQpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICt9Cj4gKwo+ICBz dGF0aWMgZW51bSB2b3BfZGF0YV9mb3JtYXQgdm9wX2NvbnZlcnRfZm9ybWF0KHVpbnQzMl90IGZv cm1hdCkKPiAgewo+ICAJc3dpdGNoIChmb3JtYXQpIHsKPiBAQCAtNTg3LDEwICs2MjAsMTYgQEAg c3RhdGljIGludCB2b3BfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCj4gIAkJdm9w X3dpbl9kaXNhYmxlKHZvcCwgd2luKTsKPiAgCX0KPiAtCXNwaW5fdW5sb2NrKCZ2b3AtPnJlZ19s b2NrKTsKPiArCj4gKwlpZiAodm9wLT5kYXRhLT5hZmJjKSB7Cj4gKwkJVk9QX0FGQkNfU0VUKHZv cCwgZW5hYmxlLCAwKTsKPiArCQl2b3AtPmFmYmNfd2luID0gTlVMTDsKPiArCX0KPiAgCj4gIAl2 b3BfY2ZnX2RvbmUodm9wKTsKPiAgCj4gKwlzcGluX3VubG9jaygmdm9wLT5yZWdfbG9jayk7Cj4g Kwo+ICAJLyoKPiAgCSAqIEF0IGhlcmUsIHZvcCBjbG9jayAmIGlvbW11IGlzIGVuYWJsZSwgUi9X IHZvcCByZWdzIHdvdWxkIGJlIHNhZmUuCj4gIAkgKi8KPiBAQCAtNzE5LDYgKzc1OCwzMiBAQCBz dGF0aWMgaW50IHZvcF9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+ICsJaWYgKGZiLT5tb2RpZmllciAmIERS TV9GT1JNQVRfTU9EX0FSTV9BRkJDKEFGQkNfRk9STUFUX01PRF9ST0NLQ0hJUCkpIHsKPiArCQlz dHJ1Y3Qgdm9wICp2b3AgPSB0b192b3AoY3J0Yyk7Cj4gKwo+ICsJCWlmICghdm9wLT5kYXRhLT5h ZmJjKSB7Cj4gKwkJCURSTV9FUlJPUigiVk9QIGRvZXMgbm90IHN1cHBvcnQgQUZCQ1xuIik7Cj4g KwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCj4gKwkJcmV0ID0gdm9wX2NvbnZlcnRfYWZi Y19mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiArCQlpZiAocmV0IDwgMCkKPiArCQkJcmV0 dXJuIHJldDsKPiArCj4gKwkJaWYgKHN0YXRlLT5zcmMueDEgfHwgc3RhdGUtPnNyYy55MSkgewo+ ICsJCQlEUk1fRVJST1IoIkFGQkMgZG9lcyBub3Qgc3VwcG9ydCBvZmZzZXQgZGlzcGxheVxuIik7 Cj4gKwkJCURSTV9FUlJPUigieHBvcz0lZCwgeXBvcz0lZCwgb2Zmc2V0PSVkXG4iLAo+ICsJCQkJ c3RhdGUtPnNyYy54MSwgc3RhdGUtPnNyYy55MSwgZmItPm9mZnNldHNbMF0pOwo+ICsJCQlyZXR1 cm4gLUVJTlZBTDsKPiArCQl9Cj4gKwo+ICsJCWlmIChzdGF0ZS0+cm90YXRpb24gJiYgc3RhdGUt PnJvdGF0aW9uICE9IERSTV9NT0RFX1JPVEFURV8wKSB7Cj4gKwkJCURSTV9FUlJPUigiQUZCQyBk b2VzIG5vdCBzdXBwb3J0IHJvdGF0aW9uXG4iKTsKPiArCQkJRFJNX0VSUk9SKCJyb3RhdGlvbj0l ZFxuIiwgc3RhdGUtPnJvdGF0aW9uKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsJ fQo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC03MzIsNiArNzk3LDkgQEAgc3RhdGlj IHZvaWQgdm9wX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ ICAJaWYgKCFvbGRfc3RhdGUtPmNydGMpCj4gIAkJcmV0dXJuOwo+ICAKPiArCWlmICh2b3AtPmFm YmNfd2luID09IHZvcF93aW4pCj4gKwkJdm9wLT5hZmJjX3dpbiA9IE5VTEw7Cj4gKwo+ICAJc3Bp bl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKPiAgCj4gIAl2b3Bfd2luX2Rpc2FibGUodm9wLCB3aW4p Owo+IEBAIC03NzQsNiArODQyLDkgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2F0b21pY191cGRh dGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlpZiAoV0FSTl9PTighdm9wLT5pc19lbmFi bGVkKSkKPiAgCQlyZXR1cm47Cj4gIAo+ICsJaWYgKHZvcC0+YWZiY193aW4gPT0gdm9wX3dpbikK PiArCQl2b3AtPmFmYmNfd2luID0gTlVMTDsKPiArCj4gIAlpZiAoIXN0YXRlLT52aXNpYmxlKSB7 Cj4gIAkJdm9wX3BsYW5lX2F0b21pY19kaXNhYmxlKHBsYW5lLCBvbGRfc3RhdGUpOwo+ICAJCXJl dHVybjsKPiBAQCAtODA4LDYgKzg3OSwyMCBAQCBzdGF0aWMgdm9pZCB2b3BfcGxhbmVfYXRvbWlj X3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCj4gIAlzcGluX2xvY2soJnZvcC0+ cmVnX2xvY2spOwo+ICAKPiArCWlmIChmYi0+bW9kaWZpZXIgJiBEUk1fRk9STUFUX01PRF9BUk1f QUZCQyhBRkJDX0ZPUk1BVF9NT0RfUk9DS0NISVApKSB7Cj4gKwkJaW50IGFmYmNfZm9ybWF0ID0g dm9wX2NvbnZlcnRfYWZiY19mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiArCj4gKwkJVk9Q X0FGQkNfU0VUKHZvcCwgZm9ybWF0LCBhZmJjX2Zvcm1hdCB8IDEgPDwgNCk7Cj4gKwkJVk9QX0FG QkNfU0VUKHZvcCwgaHJlZ19ibG9ja19zcGxpdCwgMCk7Cj4gKwkJVk9QX0FGQkNfU0VUKHZvcCwg d2luX3NlbCwgd2luX2luZGV4KTsKPiArCQlWT1BfQUZCQ19TRVQodm9wLCBoZHJfcHRyLCBkbWFf YWRkcik7Cj4gKwkJVk9QX0FGQkNfU0VUKHZvcCwgcGljX3NpemUsIGFjdF9pbmZvKTsKPiArCj4g KwkJdm9wLT5hZmJjX3dpbiA9IHZvcF93aW47Cj4gKwo+ICsJCXByX2luZm8oIkFGQkMgb24gcGxh bmUgJXNcbiIsIHBsYW5lLT5uYW1lKTsKPiArCX0KPiArCj4gIAlWT1BfV0lOX1NFVCh2b3AsIHdp biwgZm9ybWF0LCBmb3JtYXQpOwo+ICAJVk9QX1dJTl9TRVQodm9wLCB3aW4sIHlyZ2JfdmlyLCBE SVZfUk9VTkRfVVAoZmItPnBpdGNoZXNbMF0sIDQpKTsKPiAgCVZPUF9XSU5fU0VUKHZvcCwgd2lu LCB5cmdiX21zdCwgZG1hX2FkZHIpOwo+IEBAIC0xMTYzLDYgKzEyNDgsNyBAQCBzdGF0aWMgdm9p ZCB2b3BfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAKPiAgCXNw aW5fbG9jaygmdm9wLT5yZWdfbG9jayk7Cj4gIAo+ICsJVk9QX0FGQkNfU0VUKHZvcCwgZW5hYmxl LCB2b3AtPmFmYmNfd2luID8gMHgxIDogMCk7Cj4gIAl2b3BfY2ZnX2RvbmUodm9wKTsKPiAgCj4g IAlzcGluX3VubG9jaygmdm9wLT5yZWdfbG9jayk7Cj4gQEAgLTE0NzEsNyArMTU1Nyw4IEBAIHN0 YXRpYyBpbnQgdm9wX2NyZWF0ZV9jcnRjKHN0cnVjdCB2b3AgKnZvcCkKPiAgCQkJCQkgICAgICAg MCwgJnZvcF9wbGFuZV9mdW5jcywKPiAgCQkJCQkgICAgICAgd2luX2RhdGEtPnBoeS0+ZGF0YV9m b3JtYXRzLAo+ICAJCQkJCSAgICAgICB3aW5fZGF0YS0+cGh5LT5uZm9ybWF0cywKPiAtCQkJCQkg ICAgICAgTlVMTCwgd2luX2RhdGEtPnR5cGUsIE5VTEwpOwo+ICsJCQkJCSAgICAgICB3aW5fZGF0 YS0+cGh5LT5mb3JtYXRfbW9kaWZpZXJzLAo+ICsJCQkJCSAgICAgICB3aW5fZGF0YS0+dHlwZSwg TlVMTCk7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlEUk1fREVWX0VSUk9SKHZvcC0+ZGV2LCAiZmFp bGVkIHRvIGluaXQgcGxhbmUgJWRcbiIsCj4gIAkJCQkgICAgICByZXQpOwo+IEBAIC0xNTExLDcg KzE1OTgsOCBAQCBzdGF0aWMgaW50IHZvcF9jcmVhdGVfY3J0YyhzdHJ1Y3Qgdm9wICp2b3ApCj4g IAkJCQkJICAgICAgICZ2b3BfcGxhbmVfZnVuY3MsCj4gIAkJCQkJICAgICAgIHdpbl9kYXRhLT5w aHktPmRhdGFfZm9ybWF0cywKPiAgCQkJCQkgICAgICAgd2luX2RhdGEtPnBoeS0+bmZvcm1hdHMs Cj4gLQkJCQkJICAgICAgIE5VTEwsIHdpbl9kYXRhLT50eXBlLCBOVUxMKTsKPiArCQkJCQkgICAg ICAgd2luX2RhdGEtPnBoeS0+Zm9ybWF0X21vZGlmaWVycywKPiArCQkJCQkgICAgICAgd2luX2Rh dGEtPnR5cGUsIE5VTEwpOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJRFJNX0RFVl9FUlJPUih2b3At PmRldiwgImZhaWxlZCB0byBpbml0IG92ZXJsYXkgJWRcbiIsCj4gIAkJCQkgICAgICByZXQpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5o IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaAo+IGluZGV4IDIx NDlhODg5YzI5ZC4uZGM4YjEyMDI1MjY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX3ZvcC5oCj4gQEAgLTc3LDYgKzc3LDE2IEBAIHN0cnVjdCB2b3BfbWlz YyB7Cj4gIAlzdHJ1Y3Qgdm9wX3JlZyBnbG9iYWxfcmVnZG9uZV9lbjsKPiAgfTsKPiAgCj4gK3N0 cnVjdCB2b3BfYWZiYyB7Cj4gKwlzdHJ1Y3Qgdm9wX3JlZyBlbmFibGU7Cj4gKwlzdHJ1Y3Qgdm9w X3JlZyB3aW5fc2VsOwo+ICsJc3RydWN0IHZvcF9yZWcgZm9ybWF0Owo+ICsJc3RydWN0IHZvcF9y ZWcgaHJlZ19ibG9ja19zcGxpdDsKPiArCXN0cnVjdCB2b3BfcmVnIHBpY19zaXplOwo+ICsJc3Ry dWN0IHZvcF9yZWcgaGRyX3B0cjsKPiArCXN0cnVjdCB2b3BfcmVnIHJzdG47Cj4gK307Cj4gKwo+ ICBzdHJ1Y3Qgdm9wX2ludHIgewo+ICAJY29uc3QgaW50ICppbnRyczsKPiAgCXVpbnQzMl90IG5p bnRyczsKPiBAQCAtMTI4LDYgKzEzOCw3IEBAIHN0cnVjdCB2b3Bfd2luX3BoeSB7Cj4gIAljb25z dCBzdHJ1Y3Qgdm9wX3NjbF9yZWdzICpzY2w7Cj4gIAljb25zdCB1aW50MzJfdCAqZGF0YV9mb3Jt YXRzOwo+ICAJdWludDMyX3QgbmZvcm1hdHM7Cj4gKwljb25zdCB1aW50NjRfdCAqZm9ybWF0X21v ZGlmaWVyczsKPiAgCj4gIAlzdHJ1Y3Qgdm9wX3JlZyBlbmFibGU7Cj4gIAlzdHJ1Y3Qgdm9wX3Jl ZyBnYXRlOwo+IEBAIC0xNjksNiArMTgwLDcgQEAgc3RydWN0IHZvcF9kYXRhIHsKPiAgCWNvbnN0 IHN0cnVjdCB2b3Bfb3V0cHV0ICpvdXRwdXQ7Cj4gIAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl95dXYy eXV2X2RhdGEgKndpbl95dXYyeXV2Owo+ICAJY29uc3Qgc3RydWN0IHZvcF93aW5fZGF0YSAqd2lu Owo+ICsJY29uc3Qgc3RydWN0IHZvcF9hZmJjICphZmJjOwo+ICAJdW5zaWduZWQgaW50IHdpbl9z aXplOwo+ICAKPiAgI2RlZmluZSBWT1BfRkVBVFVSRV9PVVRQVVRfUkdCMTAJQklUKDApCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCj4gaW5kZXggN2I5Yzc0 NzUwZjZkLi5lOWZmMGM0M2MzOTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF92b3BfcmVnLmMKPiBAQCAtMzAsNiArMzAsMTIgQEAKPiAgI2RlZmluZSBWT1BfUkVH X01BU0tfU1lOQyhvZmYsIF9tYXNrLCBfc2hpZnQpIFwKPiAgCQlfVk9QX1JFRyhvZmYsIF9tYXNr LCBfc2hpZnQsIHRydWUsIGZhbHNlKQo+ICAKPiArc3RhdGljIGNvbnN0IHVpbnQ2NF90IGZvcm1h dF9tb2RpZmllcnNfYWZiY1tdID0gewo+ICsJRFJNX0ZPUk1BVF9NT0RfQVJNX0FGQkMoQUZCQ19G T1JNQVRfTU9EX1JPQ0tDSElQKSwKPiArCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKPiArCURSTV9G T1JNQVRfTU9EX0lOVkFMSUQKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCB1aW50MzJfdCBmb3Jt YXRzX3dpbl9mdWxsW10gPSB7Cj4gIAlEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICAJRFJNX0ZPUk1B VF9BUkdCODg4OCwKPiBAQCAtNjY3LDYgKzY3Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9w X3dpbl9waHkgcmszMzY4X3dpbjAxX2RhdGEgPSB7Cj4gIAkuc2NsID0gJnJrMzI4OF93aW5fZnVs bF9zY2wsCj4gIAkuZGF0YV9mb3JtYXRzID0gZm9ybWF0c193aW5fZnVsbCwKPiAgCS5uZm9ybWF0 cyA9IEFSUkFZX1NJWkUoZm9ybWF0c193aW5fZnVsbCksCj4gKwkuZm9ybWF0X21vZGlmaWVycyA9 IGZvcm1hdF9tb2RpZmllcnNfYWZiYywKPiAgCS5lbmFibGUgPSBWT1BfUkVHKFJLMzM2OF9XSU4w X0NUUkwwLCAweDEsIDApLAo+ICAJLmZvcm1hdCA9IFZPUF9SRUcoUkszMzY4X1dJTjBfQ1RSTDAs IDB4NywgMSksCj4gIAkucmJfc3dhcCA9IFZPUF9SRUcoUkszMzY4X1dJTjBfQ1RSTDAsIDB4MSwg MTIpLAo+IEBAIC03NTgsNiArNzY1LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX2RhdGEg cmszMzY2X3ZvcCA9IHsKPiAgCS53aW5fc2l6ZSA9IEFSUkFZX1NJWkUocmszMzY4X3ZvcF93aW5f ZGF0YSksCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9hZmJjIHJrMzM5OV9h ZmJjID0gewo+ICsJLnJzdG4gPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBfQ1RSTCwgMHgxLCAzKSwK PiArCS5lbmFibGUgPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBfQ1RSTCwgMHgxLCAwKSwKPiArCS53 aW5fc2VsID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0QwX0NUUkwsIDB4MywgMSksCj4gKwkuZm9ybWF0 ID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0QwX0NUUkwsIDB4MWYsIDE2KSwKPiArCS5ocmVnX2Jsb2Nr X3NwbGl0ID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0QwX0NUUkwsIDB4MSwgMjEpLAo+ICsJLmhkcl9w dHIgPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBfSERSX1BUUiwgMHhmZmZmZmZmZiwgMCksCj4gKwku cGljX3NpemUgPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBfUElDX1NJWkUsIDB4ZmZmZmZmZmYsIDAp LAo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfb3V0cHV0IHJrMzM5OV9vdXRw dXQgPSB7Cj4gIAkuZHBfcGluX3BvbCA9IFZPUF9SRUcoUkszMzk5X0RTUF9DVFJMMSwgMHhmLCAx NiksCj4gIAkucmdiX3Bpbl9wb2wgPSBWT1BfUkVHKFJLMzM2OF9EU1BfQ1RSTDEsIDB4ZiwgMTYp LAo+IEBAIC04MDgsNiArODI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMz OTlfdm9wX2JpZyA9IHsKPiAgCS5tb2Rlc2V0ID0gJnJrMzI4OF9tb2Rlc2V0LAo+ICAJLm91dHB1 dCA9ICZyazMzOTlfb3V0cHV0LAo+ICAJLm1pc2MgPSAmcmszMzY4X21pc2MsCj4gKwkuYWZiYyA9 ICZyazMzOTlfYWZiYywKPiAgCS53aW4gPSByazMzNjhfdm9wX3dpbl9kYXRhLAo+ICAJLndpbl9z aXplID0gQVJSQVlfU0laRShyazMzNjhfdm9wX3dpbl9kYXRhKSwKPiAgCS53aW5feXV2Mnl1diA9 IHJrMzM5OV92b3BfYmlnX3dpbl95dXYyeXV2X2RhdGEsCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS9kcm0vZHJtX2ZvdXJjYy5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fZm91cmNjLmgKPiBp bmRleCAzZmVlYWEzZjk4N2EuLmJhNmNhZjA2YzgyNCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3Vh cGkvZHJtL2RybV9mb3VyY2MuaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5o Cj4gQEAgLTc0Miw2ICs3NDIsOSBAQCBleHRlcm4gIkMiIHsKPiAgICovCj4gICNkZWZpbmUgQUZC Q19GT1JNQVRfTU9EX0JDSCAgICAgKDFVTEwgPDwgMTEpCj4gIAo+ICsjZGVmaW5lIEFGQkNfRk9S TUFUX01PRF9ST0NLQ0hJUCBcCj4gKwkoQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJWkVfMTZ4MTYg fCBBRkJDX0ZPUk1BVF9NT0RfU1BBUlNFKQo+ICsKPiAgLyoKPiAgICogQWxsd2lubmVyIHRpbGVk IG1vZGlmaWVyCj4gICAqCj4gLS0gCj4gMi4xNy4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbA==