From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ezequiel Garcia Subject: Re: [PATCH v2] drm/rockchip: Fix YUV buffers color rendering Date: Thu, 03 Jan 2019 13:28:37 -0300 Message-ID: <670c038ae2ce0cb3543afaea223f9e3795b83ddd.camel@collabora.com> References: <20180215053300.70482-2-dcastagna@chromium.org> <20181214162920.20361-1-ezequiel@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181214162920.20361-1-ezequiel@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Daniele Castagna , Tomasz Figa , linux-rockchip@lists.infradead.org, Sean Paul , kernel@collabora.com List-Id: linux-rockchip.vger.kernel.org T24gRnJpLCAyMDE4LTEyLTE0IGF0IDEzOjI5IC0wMzAwLCBFemVxdWllbCBHYXJjaWEgd3JvdGU6 Cj4gRnJvbTogRGFuaWVsZSBDYXN0YWduYSA8ZGNhc3RhZ25hQGNocm9taXVtLm9yZz4KPiAKPiBD dXJyZW50bHksIFlVViBoYXJkd2FyZSBvdmVybGF5cyBhcmUgY29udmVydGVkIHRvIFJHQiB1c2lu Zwo+IGEgY29sb3Igc3BhY2UgY29udmVyc2lvbiBkaWZmZXJlbnQgdGhhbiBCVC42MDEuCj4gCj4g VGhlIHJlc3VsdCBpcyB0aGF0IGNvbG9ycyBvZiBlLmcuIE5WMTIgYnVmZmVycyBkb24ndCBtYXRj aAo+IGNvbG9ycyBvZiBZVVYgaGFyZHdhcmUgb3ZlcmxheXMuCj4gCj4gSW4gb3JkZXIgdG8gZml4 IHRoaXMsIGVuYWJsZSBZVVYyWVVWIGFuZCBzZXQgYXBwcm9wcmlhdGUgY29lZmZpY2llbnRzCj4g Zm9yIGZvcm1hdHMgc3VjaCBhcyBOVjEyIHRvIGJlIGRpc3BsYXllZCBjb3JyZWN0bHkuCj4gCj4g VGhpcyBjb21taXQgd2FzIHRlc3RlZCB1c2luZyBtb2RldGVzdCwgZ3N0cmVhbWVyIGFuZCBjaHJv bWVvcyAoaGFyZHdhcmUKPiBhY2NlbGVyYXRlZCB2aWRlbyBwbGF5YmFjaykuIEJlZm9yZSB0aGUg Y29tbWl0LCB0ZXN0cyByZW5kZXJpbmcKPiB3aXRoIE5WMTIgZm9ybWF0IHJlc3VsdGVkIGluIGNv bG9ycyBub3QgZGlzcGxheWVkIGNvcnJlY3RseS4KPiAKPiBUZXN0IGV4YW1wbGVzIChSSzMzOTkg RmljdXMgYm9hcmQgY29ubmVjdGVkIHRvIEhETUkgbW9uaXRvcik6Cj4gCj4gICAkIG1vZGV0ZXN0 IDM5QDMyOjE5MjB4MTA4MEBOVjEyCj4gICAkIGdzdC1sYXVuY2gtMS4wIHZpZGVvdGVzdHJjICEg dmlkZW8veC1yYXcsZm9ybWF0PU5WMTIgISBrbXNzaW5rCj4gCj4gU2lnbmVkLW9mZi1ieTogRGFu aWVsZSBDYXN0YWduYSA8ZGNhc3RhZ25hQGNocm9taXVtLm9yZz4KPiBbZXplcXVpZWw6IHJlYmFz ZSBvbiBsaW51eC1uZXh0IGFuZCBtYXNzYWdlIGNvbW1pdCBsb2ddCj4gU2lnbmVkLW9mZi1ieTog RXplcXVpZWwgR2FyY2lhIDxlemVxdWllbEBjb2xsYWJvcmEuY29tPgo+IC0tLQo+IHYyOgo+ICAg KiBBZGRyZXNzZWQgZmVlZGJhY2sgZnJvbSBTZWFuIFBhdWwKPiAgICogUmViYXNlZCBvbiBsaW51 eC1uZXh0Cj4gCgpBbnkgZmVlZGJhY2sgb24gdGhpcyBvbmU/CgpUaGFua3MhCkV6ZXF1aWVsCgo+ ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jIHwgNDEgKysrKysr KysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1f dm9wLmggfCAxMyArKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92 b3BfcmVnLmMgfCAzNiArKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCA4OSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX3ZvcC5jCj4gaW5kZXggZmI3MGZiNDg2ZmJmLi43OGM3ZjYzYTYwYzAg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3Au Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPiBA QCAtNTIsNiArNTIsMTggQEAKPiAgCQl2b3BfcmVnX3NldCh2b3AsICZ3aW4tPnBoeS0+c2NsLT5l eHQtPm5hbWUsIFwKPiAgCQkJICAgIHdpbi0+YmFzZSwgfjAsIHYsICNuYW1lKQo+ICAKPiArI2Rl ZmluZSBWT1BfV0lOX1lVVjJZVVZfU0VUKHgsIHdpbl95dXYyeXV2LCBuYW1lLCB2KSBcCj4gKwlk byB7IFwKPiArCQlpZiAod2luX3l1djJ5dXYtPm5hbWUubWFzaykgXAo+ICsJCQl2b3BfcmVnX3Nl dCh2b3AsICZ3aW5feXV2Mnl1di0+bmFtZSwgMCwgfjAsIHYsICNuYW1lKTsgXAo+ICsJfSB3aGls ZSAoMCkKPiArCj4gKyNkZWZpbmUgVk9QX1dJTl9ZVVYyWVVWX0NPRUZGSUNJRU5UX1NFVCh4LCB3 aW5feXV2Mnl1diwgbmFtZSwgdikgXAo+ICsJZG8geyBcCj4gKwkJaWYgKHdpbl95dXYyeXV2LT5w aHktPm5hbWUubWFzaykgXAo+ICsJCQl2b3BfcmVnX3NldCh2b3AsICZ3aW5feXV2Mnl1di0+cGh5 LT5uYW1lLCB3aW5feXV2Mnl1di0+YmFzZSwgfjAsIHYsICNuYW1lKTsgXAo+ICsJfSB3aGlsZSAo MCkKPiArCj4gICNkZWZpbmUgVk9QX0lOVFJfU0VUX01BU0sodm9wLCBuYW1lLCBtYXNrLCB2KSBc Cj4gIAkJdm9wX3JlZ19zZXQodm9wLCAmdm9wLT5kYXRhLT5pbnRyLT5uYW1lLCAwLCBtYXNrLCB2 LCAjbmFtZSkKPiAgCj4gQEAgLTg0LDYgKzk2LDE4IEBACj4gICNkZWZpbmUgdG9fdm9wKHgpIGNv bnRhaW5lcl9vZih4LCBzdHJ1Y3Qgdm9wLCBjcnRjKQo+ICAjZGVmaW5lIHRvX3ZvcF93aW4oeCkg Y29udGFpbmVyX29mKHgsIHN0cnVjdCB2b3Bfd2luLCBiYXNlKQo+ICAKPiArLyoKPiArICogVGhl IGNvZWZmaWNpZW50cyBvZiB0aGUgZm9sbG93aW5nIG1hdHJpeCBhcmUgYWxsIGZpeGVkIHBvaW50 cy4KPiArICogVGhlIGZvcm1hdCBpcyBTMi4xMCBmb3IgdGhlIDN4MyBwYXJ0IG9mIHRoZSBtYXRy aXgsIGFuZCBTOS4xMiBmb3IgdGhlIG9mZnNldHMuCj4gKyAqIFRoZXkgYXJlIGFsbCByZXByZXNl bnRlZCBpbiB0d28ncyBjb21wbGVtZW50Lgo+ICsgKi8KPiArc3RhdGljIGNvbnN0IHVpbnQzMl90 IHJvY2tjaGlwX2J0NjAxX3l1djJyZ2JbXSA9IHsKPiArCTB4MDAwMDA0YTgsIDB4MDAwMDAwMDAs IDB4MDAwMDA2NjIsCj4gKwkweDAwMDAwNGE4LCAweDAwMDAxZTZmLCAweDAwMDAxY2JmLAo+ICsJ MHgwMDAwMDRhOCwgMHgwMDAwMDgxMiwgMHgwMDAwMDAwMCwKPiArCTB4MDAzMjExNjgsIDB4MDAw ODc3Y2YsIDB4MDAyZWIxMjcKPiArfTsKPiArCj4gIGVudW0gdm9wX3BlbmRpbmcgewo+ICAJVk9Q X1BFTkRJTkdfRkJfVU5SRUYsCj4gIH07Cj4gQEAgLTkxLDYgKzExNSw3IEBAIGVudW0gdm9wX3Bl bmRpbmcgewo+ICBzdHJ1Y3Qgdm9wX3dpbiB7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lIGJhc2U7Cj4g IAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhICpkYXRhOwo+ICsJY29uc3Qgc3RydWN0IHZvcF93 aW5feXV2Mnl1dl9kYXRhICp5dXYyeXV2X2RhdGE7Cj4gIAlzdHJ1Y3Qgdm9wICp2b3A7Cj4gIH07 Cj4gIAo+IEBAIC03MTIsNiArNzM3LDcgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2F0b21pY191 cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBzdGF0ZS0+Y3J0YzsKPiAgCXN0cnVjdCB2b3Bfd2luICp2b3Bfd2luID0gdG9fdm9wX3dpbihw bGFuZSk7Cj4gIAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhICp3aW4gPSB2b3Bfd2luLT5kYXRh Owo+ICsJY29uc3Qgc3RydWN0IHZvcF93aW5feXV2Mnl1dl9kYXRhICp3aW5feXV2Mnl1diA9IHZv cF93aW4tPnl1djJ5dXZfZGF0YTsKPiAgCXN0cnVjdCB2b3AgKnZvcCA9IHRvX3ZvcChzdGF0ZS0+ Y3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5mYjsKPiAgCXVu c2lnbmVkIGludCBhY3R1YWxfdywgYWN0dWFsX2g7Cj4gQEAgLTcyNyw2ICs3NTMsOCBAQCBzdGF0 aWMgdm9pZCB2b3BfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiAgCWJvb2wgcmJfc3dhcDsKPiAgCWludCB3aW5faW5kZXggPSBWT1BfV0lOX1RPX0lOREVYKHZv cF93aW4pOwo+ICAJaW50IGZvcm1hdDsKPiArCWludCBpc195dXYgPSBmYi0+Zm9ybWF0LT5pc195 dXY7Cj4gKwlpbnQgaTsKPiAgCj4gIAkvKgo+ICAJICogY2FuJ3QgdXBkYXRlIHBsYW5lIHdoZW4g dm9wIGlzIGRpc2FibGVkLgo+IEBAIC03NjcsNyArNzk1LDEwIEBAIHN0YXRpYyB2b2lkIHZvcF9w bGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJVk9QX1dJTl9T RVQodm9wLCB3aW4sIGZvcm1hdCwgZm9ybWF0KTsKPiAgCVZPUF9XSU5fU0VUKHZvcCwgd2luLCB5 cmdiX3ZpciwgRElWX1JPVU5EX1VQKGZiLT5waXRjaGVzWzBdLCA0KSk7Cj4gIAlWT1BfV0lOX1NF VCh2b3AsIHdpbiwgeXJnYl9tc3QsIGRtYV9hZGRyKTsKPiAtCWlmIChmYi0+Zm9ybWF0LT5pc195 dXYpIHsKPiArCj4gKwlWT1BfV0lOX1lVVjJZVVZfU0VUKHZvcCwgd2luX3l1djJ5dXYsIHkycl9l biwgaXNfeXV2KTsKPiArCj4gKwlpZiAoaXNfeXV2KSB7Cj4gIAkJaW50IGhzdWIgPSBkcm1fZm9y bWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gIAkJaW50 IHZzdWIgPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZv cm1hdCk7Cj4gIAkJaW50IGJwcCA9IGZiLT5mb3JtYXQtPmNwcFsxXTsKPiBAQCAtNzgxLDYgKzgx MiwxMyBAQCBzdGF0aWMgdm9pZCB2b3BfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiAgCQlkbWFfYWRkciA9IHJrX3V2X29iai0+ZG1hX2FkZHIgKyBvZmZzZXQg KyBmYi0+b2Zmc2V0c1sxXTsKPiAgCQlWT1BfV0lOX1NFVCh2b3AsIHdpbiwgdXZfdmlyLCBESVZf Uk9VTkRfVVAoZmItPnBpdGNoZXNbMV0sIDQpKTsKPiAgCQlWT1BfV0lOX1NFVCh2b3AsIHdpbiwg dXZfbXN0LCBkbWFfYWRkcik7Cj4gKwo+ICsJCWZvciAoaSA9IDA7IGkgPCBOVU1fWVVWMllVVl9D T0VGRklDSUVOVFM7IGkrKykgewo+ICsJCQlWT1BfV0lOX1lVVjJZVVZfQ09FRkZJQ0lFTlRfU0VU KHZvcCwKPiArCQkJCQkJCXdpbl95dXYyeXV2LAo+ICsJCQkJCQkJeTJyX2NvZWZmaWNpZW50c1tp XSwKPiArCQkJCQkJCXJvY2tjaGlwX2J0NjAxX3l1djJyZ2JbaV0pOwo+ICsJCX0KPiAgCX0KPiAg Cj4gIAlpZiAod2luLT5waHktPnNjbCkKPiBAQCAtMTUyOSw2ICsxNTY3LDcgQEAgc3RhdGljIHZv aWQgdm9wX3dpbl9pbml0KHN0cnVjdCB2b3AgKnZvcCkKPiAgCj4gIAkJdm9wX3dpbi0+ZGF0YSA9 IHdpbl9kYXRhOwo+ICAJCXZvcF93aW4tPnZvcCA9IHZvcDsKPiArCQl2b3Bfd2luLT55dXYyeXV2 X2RhdGEgPSAmdm9wX2RhdGEtPndpbl95dXYyeXV2W2ldOwo+ICAJfQo+ICB9Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaAo+IGluZGV4IDBmZTQwZTE5 ODNkOS4uYWVkNDY3Y2Q4MWI5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9kcm1fdm9wLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX3ZvcC5oCj4gQEAgLTIzLDYgKzIzLDggQEAKPiAgI2RlZmluZSBWT1BfTUFKT1Io dmVyc2lvbikJCSgodmVyc2lvbikgPj4gOCkKPiAgI2RlZmluZSBWT1BfTUlOT1IodmVyc2lvbikJ CSgodmVyc2lvbikgJiAweGZmKQo+ICAKPiArI2RlZmluZSBOVU1fWVVWMllVVl9DT0VGRklDSUVO VFMgMTIKPiArCj4gIGVudW0gdm9wX2RhdGFfZm9ybWF0IHsKPiAgCVZPUF9GTVRfQVJHQjg4ODgg PSAwLAo+ICAJVk9QX0ZNVF9SR0I4ODgsCj4gQEAgLTEyNCw2ICsxMjYsMTAgQEAgc3RydWN0IHZv cF9zY2xfcmVncyB7Cj4gIAlzdHJ1Y3Qgdm9wX3JlZyBzY2FsZV9jYmNyX3k7Cj4gIH07Cj4gIAo+ ICtzdHJ1Y3Qgdm9wX3l1djJ5dXZfcGh5IHsKPiArCXN0cnVjdCB2b3BfcmVnIHkycl9jb2VmZmlj aWVudHNbTlVNX1lVVjJZVVZfQ09FRkZJQ0lFTlRTXTsKPiArfTsKPiArCj4gIHN0cnVjdCB2b3Bf d2luX3BoeSB7Cj4gIAljb25zdCBzdHJ1Y3Qgdm9wX3NjbF9yZWdzICpzY2w7Cj4gIAljb25zdCB1 aW50MzJfdCAqZGF0YV9mb3JtYXRzOwo+IEBAIC0xNDYsNiArMTUyLDEyIEBAIHN0cnVjdCB2b3Bf d2luX3BoeSB7Cj4gIAlzdHJ1Y3Qgdm9wX3JlZyBjaGFubmVsOwo+ICB9Owo+ICAKPiArc3RydWN0 IHZvcF93aW5feXV2Mnl1dl9kYXRhIHsKPiArCXVpbnQzMl90IGJhc2U7Cj4gKwljb25zdCBzdHJ1 Y3Qgdm9wX3l1djJ5dXZfcGh5ICpwaHk7Cj4gKwlzdHJ1Y3Qgdm9wX3JlZyB5MnJfZW47Cj4gK307 Cj4gKwo+ICBzdHJ1Y3Qgdm9wX3dpbl9kYXRhIHsKPiAgCXVpbnQzMl90IGJhc2U7Cj4gIAljb25z dCBzdHJ1Y3Qgdm9wX3dpbl9waHkgKnBoeTsKPiBAQCAtMTU5LDYgKzE3MSw3IEBAIHN0cnVjdCB2 b3BfZGF0YSB7Cj4gIAljb25zdCBzdHJ1Y3Qgdm9wX21pc2MgKm1pc2M7Cj4gIAljb25zdCBzdHJ1 Y3Qgdm9wX21vZGVzZXQgKm1vZGVzZXQ7Cj4gIAljb25zdCBzdHJ1Y3Qgdm9wX291dHB1dCAqb3V0 cHV0Owo+ICsJY29uc3Qgc3RydWN0IHZvcF93aW5feXV2Mnl1dl9kYXRhICp3aW5feXV2Mnl1djsK PiAgCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbjsKPiAgCXVuc2lnbmVkIGludCB3aW5f c2l6ZTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hp cF92b3BfcmVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5j Cj4gaW5kZXggMDhmYzQwYWY1MmM4Li5mZTc1MmRmNGUwMzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKPiBAQCAtNjM3LDYgKzYzNywzNCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHZvcF9vdXRwdXQgcmszMzk5X291dHB1dCA9IHsKPiAgCS5taXBp X2R1YWxfY2hhbm5lbF9lbiA9IFZPUF9SRUcoUkszMjg4X1NZU19DVFJMLCAweDEsIDMpLAo+ICB9 Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfeXV2Mnl1dl9waHkgcmszMzk5X3l1djJ5 dXZfd2luMDFfZGF0YSA9IHsKPiArCS55MnJfY29lZmZpY2llbnRzID0gewo+ICsJCVZPUF9SRUco UkszMzk5X1dJTjBfWVVWMllVVl9ZMlIgKyAwLCAweGZmZmYsIDApLAo+ICsJCVZPUF9SRUcoUksz Mzk5X1dJTjBfWVVWMllVVl9ZMlIgKyAwLCAweGZmZmYsIDE2KSwKPiArCQlWT1BfUkVHKFJLMzM5 OV9XSU4wX1lVVjJZVVZfWTJSICsgNCwgMHhmZmZmLCAwKSwKPiArCQlWT1BfUkVHKFJLMzM5OV9X SU4wX1lVVjJZVVZfWTJSICsgNCwgMHhmZmZmLCAxNiksCj4gKwkJVk9QX1JFRyhSSzMzOTlfV0lO MF9ZVVYyWVVWX1kyUiArIDgsIDB4ZmZmZiwgMCksCj4gKwkJVk9QX1JFRyhSSzMzOTlfV0lOMF9Z VVYyWVVWX1kyUiArIDgsIDB4ZmZmZiwgMTYpLAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJTjBfWVVW MllVVl9ZMlIgKyAxMiwgMHhmZmZmLCAwKSwKPiArCQlWT1BfUkVHKFJLMzM5OV9XSU4wX1lVVjJZ VVZfWTJSICsgMTIsIDB4ZmZmZiwgMTYpLAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJTjBfWVVWMllV Vl9ZMlIgKyAxNiwgMHhmZmZmLCAwKSwKPiArCQlWT1BfUkVHKFJLMzM5OV9XSU4wX1lVVjJZVVZf WTJSICsgMjAsIDB4ZmZmZmZmZmYsIDApLAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJTjBfWVVWMllV Vl9ZMlIgKyAyNCwgMHhmZmZmZmZmZiwgMCksCj4gKwkJVk9QX1JFRyhSSzMzOTlfV0lOMF9ZVVYy WVVWX1kyUiArIDI4LCAweGZmZmZmZmZmLCAwKSwKPiArCX0sCj4gK307Cj4gKwo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IHZvcF95dXYyeXV2X3BoeSByazMzOTlfeXV2Mnl1dl93aW4yM19kYXRhID0g eyB9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfd2luX3l1djJ5dXZfZGF0YSByazMz OTlfdm9wX2JpZ193aW5feXV2Mnl1dl9kYXRhW10gPSB7Cj4gKwl7IC5iYXNlID0gMHgwMCwgLnBo eSA9ICZyazMzOTlfeXV2Mnl1dl93aW4wMV9kYXRhLAo+ICsJICAueTJyX2VuID0gVk9QX1JFRyhS SzMzOTlfWVVWMllVVl9XSU4sIDB4MSwgMSkgfSwKPiArCXsgLmJhc2UgPSAweDYwLCAucGh5ID0g JnJrMzM5OV95dXYyeXV2X3dpbjAxX2RhdGEsCj4gKwkgIC55MnJfZW4gPSBWT1BfUkVHKFJLMzM5 OV9ZVVYyWVVWX1dJTiwgMHgxLCA5KSB9LAo+ICsJeyAuYmFzZSA9IDB4QzAsIC5waHkgPSAmcmsz Mzk5X3l1djJ5dXZfd2luMjNfZGF0YSB9LAo+ICsJeyAuYmFzZSA9IDB4MTIwLCAucGh5ID0gJnJr MzM5OV95dXYyeXV2X3dpbjIzX2RhdGEgfSwKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgdm9wX2RhdGEgcmszMzk5X3ZvcF9iaWcgPSB7Cj4gIAkudmVyc2lvbiA9IFZPUF9WRVJTSU9O KDMsIDUpLAo+ICAJLmZlYXR1cmUgPSBWT1BfRkVBVFVSRV9PVVRQVVRfUkdCMTAsCj4gQEAgLTY0 Nyw2ICs2NzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9kYXRhIHJrMzM5OV92b3BfYmln ID0gewo+ICAJLm1pc2MgPSAmcmszMzY4X21pc2MsCj4gIAkud2luID0gcmszMzY4X3ZvcF93aW5f ZGF0YSwKPiAgCS53aW5fc2l6ZSA9IEFSUkFZX1NJWkUocmszMzY4X3ZvcF93aW5fZGF0YSksCj4g Kwkud2luX3l1djJ5dXYgPSByazMzOTlfdm9wX2JpZ193aW5feXV2Mnl1dl9kYXRhLAo+ICB9Owo+ ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgcmszMzk5X3ZvcF9saXRfd2lu X2RhdGFbXSA9IHsKPiBAQCAtNjU2LDYgKzY4NSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZv cF93aW5fZGF0YSByazMzOTlfdm9wX2xpdF93aW5fZGF0YVtdID0gewo+ICAJICAudHlwZSA9IERS TV9QTEFORV9UWVBFX0NVUlNPUn0sCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHZv cF93aW5feXV2Mnl1dl9kYXRhIHJrMzM5OV92b3BfbGl0X3dpbl95dXYyeXV2X2RhdGFbXSA9IHsK PiArCXsgLmJhc2UgPSAweDAwLCAucGh5ID0gJnJrMzM5OV95dXYyeXV2X3dpbjAxX2RhdGEsCj4g KwkgIC55MnJfZW4gPSBWT1BfUkVHKFJLMzM5OV9ZVVYyWVVWX1dJTiwgMHgxLCAxKX0sCj4gKwl7 IC5iYXNlID0gMHg2MCwgLnBoeSA9ICZyazMzOTlfeXV2Mnl1dl93aW4yM19kYXRhIH0sCj4gK307 Cj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9kYXRhIHJrMzM5OV92b3BfbGl0ID0gewo+ ICAJLnZlcnNpb24gPSBWT1BfVkVSU0lPTigzLCA2KSwKPiAgCS5pbnRyID0gJnJrMzM2Nl92b3Bf aW50ciwKPiBAQCAtNjY1LDYgKzcwMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX2RhdGEg cmszMzk5X3ZvcF9saXQgPSB7Cj4gIAkubWlzYyA9ICZyazMzNjhfbWlzYywKPiAgCS53aW4gPSBy azMzOTlfdm9wX2xpdF93aW5fZGF0YSwKPiAgCS53aW5fc2l6ZSA9IEFSUkFZX1NJWkUocmszMzk5 X3ZvcF9saXRfd2luX2RhdGEpLAo+ICsJLndpbl95dXYyeXV2ID0gcmszMzk5X3ZvcF9saXRfd2lu X3l1djJ5dXZfZGF0YSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9k YXRhIHJrMzIyOF92b3Bfd2luX2RhdGFbXSA9IHsKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK