From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ezequiel Garcia Subject: [PATCH v5 2/3] drm/rockchip: Add optional support for CRTC gamma LUT Date: Thu, 10 Oct 2019 16:43:50 -0300 Message-ID: <20191010194351.17940-3-ezequiel@collabora.com> References: <20191010194351.17940-1-ezequiel@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191010194351.17940-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: Mark Rutland , devicetree@vger.kernel.org, Jacopo Mondi , linux-kernel@vger.kernel.org, Rob Herring , Douglas Anderson , linux-rockchip@lists.infradead.org, Boris Brezillon , Sean Paul , kernel@collabora.com, Ezequiel Garcia List-Id: devicetree@vger.kernel.org QWRkIGFuIG9wdGlvbmFsIENSVEMgZ2FtbWEgTFVUIHN1cHBvcnQsIGFuZCBlbmFibGUgaXQgb24g UkszMjg4LgpUaGlzIGlzIGN1cnJlbnRseSBlbmFibGVkIHZpYSBhIHNlcGFyYXRlIGFkZHJlc3Mg cmVzb3VyY2UsCndoaWNoIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbiB0aGUgZGV2aWNldHJlZS4K ClRoZSBhZGRyZXNzIHJlc291cmNlIGlzIHJlcXVpcmVkIGJlY2F1c2Ugb24gc29tZSBTb0NzLCBz dWNoIGFzClJLMzI4OCwgdGhlIExVVCBhZGRyZXNzIGlzIGFmdGVyIHRoZSBNTVUgYWRkcmVzcywg YW5kIHRoZSBsYXR0ZXIKaXMgc3VwcG9ydGVkIGJ5IGEgZGlmZmVyZW50IGRyaXZlci4gVGhpcyBw cmV2ZW50cyB0aGUgRFJNIGRyaXZlcgpmcm9tIHJlcXVlc3RpbmcgYW4gZW50aXJlIHJlZ2lzdGVy IHNwYWNlLgoKVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gd29ya3MgZm9yIFJHQiAxMC1iaXQg dGFibGVzLCBhcyB0aGF0CmlzIHdoYXQgc2VlbXMgdG8gd29yayBvbiBSSzMyODguCgpTaWduZWQt b2ZmLWJ5OiBFemVxdWllbCBHYXJjaWEgPGV6ZXF1aWVsQGNvbGxhYm9yYS5jb20+Ci0tLQpDaGFu Z2VzIGZyb20gdjQ6CiogQ2xlYW5lZC11cCBnYW1tYV9zZXQgaW1wbGVtZW50YXRpb24sIGFkZHJl c3NpbmcKICBmZWVkYmFjayBmcm9tIFNlYW4gUGF1bC4KQ2hhbmdlcyBmcm9tIHYzOgoqIE1vdmUg dG8gYXRvbWljX2VuYWJsZSBhbmQgYXRvbWljX2JlZ2luLAogIGFzIGRpc2N1c3NlZCB3aXRoIFNl YW4gUGF1bC4KKiBEcm9wcGVkIHRoZSBSZXZpZXdlZC1ieXMuCkNoYW5nZXMgZnJvbSB2MjoKKiBO b25lLgpDaGFuZ2VzIGZyb20gdjE6CiogZHJvcCBleHBsaWNpdCBsaW5lYXIgTFVUIGFmdGVyIGZp bmRpbmcgYSBwcm9wZXIKICB3YXkgdG8gZGlzYWJsZSBnYW1tYSBjb3JyZWN0aW9uLgoqIGF2b2lk IHNldHRpbmcgZ2FtbWEgaXMgdGhlIENSVEMgaXMgbm90IGFjdGl2ZS4KKiBzL2ludC91bnNpZ25l ZCBpbnQgYXMgc3VnZ2VzdGVkIGJ5IEphY29wby4KKiBvbmx5IGVuYWJsZSBjb2xvciBtYW5hZ2Vt ZW50IGFuZCBzZXQgZ2FtbWEgc2l6ZQogIGlmIGdhbW1hIExVVCBpcyBzdXBwb3J0ZWQsIHN1Z2dl c3RlZCBieSBEb3VnLgoqIGRyb3AgdGhlIHJlZy1uYW1lcyB1c2FnZSwgYW5kIGluc3RlYWQganVz dCB1c2UgaW5kZXhlZCByZWcKICBzcGVjaWZpZXJzLCBzdWdnZXN0ZWQgYnkgRG91Zy4KQ2hhbmdl cyBmcm9tIFJGQzoKKiBSZXF1ZXN0IChhbiBvcHRpb25hbCkgYWRkcmVzcyByZXNvdXJjZSBmb3Ig dGhlIExVVC4KKiBEcm9wIHN1cHBvcnQgZm9yIFJLMzM5OSwgd2hpY2ggZG9lc24ndCBzZWVtIHRv IHdvcmsKICBvdXQgb2YgdGhlIGJveCBhbmQgbmVlZHMgbW9yZSByZXNlYXJjaC4KKiBTdXBwb3J0 IHBhc3MtdGhydSBzZXR0aW5nIHdoZW4gR0FNTUFfTFVUIGlzIE5VTEwuCiogQWRkIGEgY2hlY2sg Zm9yIHRoZSBnYW1tYSBzaXplLCBhcyBzdWdnZXN0ZWQgYnkgSWxpYS4KKiBNb3ZlIGdhbW1hIHNl dHRpbmcgdG8gYXRvbWljX2NvbW1pdF90YWlsLCBhcyBwb2ludGVkCiAgb3V0IGJ5IEphY29wby9M YXVyZW50LCBpcyB0aGUgY29ycmVjdCB3YXkuCi0tLQogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV92b3AuYyB8IDEyMCArKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaCB8ICAgMiArCiBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jIHwgICAyICsKIDMgZmlsZXMgY2hhbmdlZCwg MTI0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2Ry bV92b3AuYwppbmRleCA2MTM0MDRmODY2NjguLjVkOWUzN2JhNGFhNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCkBAIC0xMzksNiArMTM5LDcgQEAgc3Ry dWN0IHZvcCB7CiAKIAl1aW50MzJfdCAqcmVnc2JhazsKIAl2b2lkIF9faW9tZW0gKnJlZ3M7CisJ dm9pZCBfX2lvbWVtICpsdXRfcmVnczsKIAogCS8qIHBoeXNpY2FsIG1hcCBsZW5ndGggb2Ygdm9w IHJlZ2lzdGVyICovCiAJdWludDMyX3QgbGVuOwpAQCAtMTA0OCw2ICsxMDQ5LDc5IEBAIHN0YXRp YyBib29sIHZvcF9jcnRjX21vZGVfZml4dXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXJldHVy biB0cnVlOwogfQogCitzdGF0aWMgYm9vbCB2b3BfZHNwX2x1dF9pc19lbmFibGVkKHN0cnVjdCB2 b3AgKnZvcCkKK3sKKwlyZXR1cm4gdm9wX3JlYWRfcmVnKHZvcCwgMCwgJnZvcC0+ZGF0YS0+Y29t bW9uLT5kc3BfbHV0X2VuKTsKK30KKworc3RhdGljIHZvaWQgdm9wX2NydGNfd3JpdGVfZ2FtbWFf bHV0KHN0cnVjdCB2b3AgKnZvcCwgc3RydWN0IGRybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCBk cm1fY29sb3JfbHV0ICpsdXQgPSBjcnRjLT5zdGF0ZS0+Z2FtbWFfbHV0LT5kYXRhOworCXVuc2ln bmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IGNydGMtPmdhbW1hX3NpemU7IGkrKykgewor CQl1MzIgd29yZDsKKworCQl3b3JkID0gKGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0ucmVk LCAxMCkgPDwgMjApIHwKKwkJICAgICAgIChkcm1fY29sb3JfbHV0X2V4dHJhY3QobHV0W2ldLmdy ZWVuLCAxMCkgPDwgMTApIHwKKwkJCWRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0uYmx1ZSwg MTApOworCQl3cml0ZWwod29yZCwgdm9wLT5sdXRfcmVncyArIGkgKiA0KTsKKwl9Cit9CisKK3N0 YXRpYyB2b2lkIHZvcF9jcnRjX2dhbW1hX3NldChzdHJ1Y3Qgdm9wICp2b3AsIHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkK K3sKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlID0gY3J0Yy0+c3RhdGU7CisJdW5zaWdu ZWQgaW50IGlkbGU7CisJaW50IHJldDsKKworCWlmICghdm9wLT5sdXRfcmVncykKKwkJcmV0dXJu OworCS8qCisJICogVG8gZGlzYWJsZSBnYW1tYSAoZ2FtbWFfbHV0IGlzIG51bGwpIG9yIHRvIHdy aXRlCisJICogYW4gdXBkYXRlIHRvIHRoZSBMVVQsIGNsZWFyIGRzcF9sdXRfZW4uCisJICovCisJ c3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKKwlWT1BfUkVHX1NFVCh2b3AsIGNvbW1vbiwgZHNw X2x1dF9lbiwgMCk7CisJdm9wX2NmZ19kb25lKHZvcCk7CisJc3Bpbl91bmxvY2soJnZvcC0+cmVn X2xvY2spOworCisJLyoKKwkgKiBJbiBvcmRlciB0byB3cml0ZSB0aGUgTFVUIHRvIHRoZSBpbnRl cm5hbCBtZW1vcnksCisJICogd2UgbmVlZCB0byBmaXJzdCBtYWtlIHN1cmUgdGhlIGRzcF9sdXRf ZW4gYml0IGlzIGNsZWFyZWQuCisJICovCisJcmV0ID0gcmVhZHhfcG9sbF90aW1lb3V0KHZvcF9k c3BfbHV0X2lzX2VuYWJsZWQsIHZvcCwKKwkJCQkgaWRsZSwgIWlkbGUsIDUsIDMwICogMTAwMCk7 CisJaWYgKHJldCkgeworCQlEUk1fREVWX0VSUk9SKHZvcC0+ZGV2LCAiZGlzcGxheSBMVVQgUkFN IGVuYWJsZSB0aW1lb3V0IVxuIik7CisJCXJldHVybjsKKwl9CisKKwlpZiAoIXN0YXRlLT5nYW1t YV9sdXQpCisJCXJldHVybjsKKworCXNwaW5fbG9jaygmdm9wLT5yZWdfbG9jayk7CisJdm9wX2Ny dGNfd3JpdGVfZ2FtbWFfbHV0KHZvcCwgY3J0Yyk7CisJVk9QX1JFR19TRVQodm9wLCBjb21tb24s IGRzcF9sdXRfZW4sIDEpOworCXZvcF9jZmdfZG9uZSh2b3ApOworCXNwaW5fdW5sb2NrKCZ2b3At PnJlZ19sb2NrKTsKK30KKworc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2JlZ2luKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNf c3RhdGUpCit7CisJc3RydWN0IHZvcCAqdm9wID0gdG9fdm9wKGNydGMpOworCisJLyoKKwkgKiBP bmx5IHVwZGF0ZSBHQU1NQSBpZiB0aGUgJ2FjdGl2ZScgZmxhZyBpcyBub3QgY2hhbmdlZCwKKwkg KiBvdGhlcndpc2UgaXQncyB1cGRhdGVkIGJ5IC5hdG9taWNfZW5hYmxlLgorCSAqLworCWlmIChj cnRjLT5zdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkICYmCisJICAgICFjcnRjLT5zdGF0ZS0+YWN0 aXZlX2NoYW5nZWQpCisJCXZvcF9jcnRjX2dhbW1hX3NldCh2b3AsIGNydGMsIG9sZF9jcnRjX3N0 YXRlKTsKK30KKwogc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCiB7 CkBAIC0xMDc1LDYgKzExNDksMTQgQEAgc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2VuYWJs ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCXJldHVybjsKIAl9CiAKKwkvKgorCSAqIElmIHdl IGhhdmUgYSBHQU1NQSBMVVQgaW4gdGhlIHN0YXRlLCB0aGVuIGxldCdzIG1ha2Ugc3VyZQorCSAq IGl0J3MgdXBkYXRlZC4gV2UgbWlnaHQgYmUgY29taW5nIG91dCBvZiBzdXNwZW5kLAorCSAqIHdo aWNoIG1lYW5zIHRoZSBMVVQgaW50ZXJuYWwgbWVtb3J5IG5lZWRzIHRvIGJlIHJlLXdyaXR0ZW4u CisJICovCisJaWYgKGNydGMtPnN0YXRlLT5nYW1tYV9sdXQpCisJCXZvcF9jcnRjX2dhbW1hX3Nl dCh2b3AsIGNydGMsIG9sZF9zdGF0ZSk7CisKIAltdXRleF9sb2NrKCZ2b3AtPnZvcF9sb2NrKTsK IAogCVdBUk5fT04odm9wLT5ldmVudCk7CkBAIC0xMTkxLDYgKzEyNzMsMjYgQEAgc3RhdGljIHZv aWQgdm9wX3dhaXRfZm9yX2lycV9oYW5kbGVyKHN0cnVjdCB2b3AgKnZvcCkKIAlzeW5jaHJvbml6 ZV9pcnEodm9wLT5pcnEpOwogfQogCitzdGF0aWMgaW50IHZvcF9jcnRjX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKK3sKKwlzdHJ1Y3Qgdm9wICp2b3AgPSB0b192b3AoY3J0Yyk7CisKKwlpZiAodm9wLT5s dXRfcmVncyAmJiBjcnRjX3N0YXRlLT5jb2xvcl9tZ210X2NoYW5nZWQgJiYKKwkgICAgY3J0Y19z dGF0ZS0+Z2FtbWFfbHV0KSB7CisJCXVuc2lnbmVkIGludCBsZW47CisKKwkJbGVuID0gZHJtX2Nv bG9yX2x1dF9zaXplKGNydGNfc3RhdGUtPmdhbW1hX2x1dCk7CisJCWlmIChsZW4gIT0gY3J0Yy0+ Z2FtbWFfc2l6ZSkgeworCQkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBMVVQgc2l6ZTsgZ290ICVk LCBleHBlY3RlZCAlZFxuIiwKKwkJCQkgICAgICBsZW4sIGNydGMtPmdhbW1hX3NpemUpOworCQkJ cmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQg dm9wX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7CkBAIC0xMjQzLDYgKzEzNDUsOCBA QCBzdGF0aWMgdm9pZCB2b3BfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRj LAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB2b3BfY3J0Y19o ZWxwZXJfZnVuY3MgPSB7CiAJLm1vZGVfZml4dXAgPSB2b3BfY3J0Y19tb2RlX2ZpeHVwLAorCS5h dG9taWNfY2hlY2sgPSB2b3BfY3J0Y19hdG9taWNfY2hlY2ssCisJLmF0b21pY19iZWdpbiA9IHZv cF9jcnRjX2F0b21pY19iZWdpbiwKIAkuYXRvbWljX2ZsdXNoID0gdm9wX2NydGNfYXRvbWljX2Zs dXNoLAogCS5hdG9taWNfZW5hYmxlID0gdm9wX2NydGNfYXRvbWljX2VuYWJsZSwKIAkuYXRvbWlj X2Rpc2FibGUgPSB2b3BfY3J0Y19hdG9taWNfZGlzYWJsZSwKQEAgLTEzNjEsNiArMTQ2NSw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mgdm9wX2NydGNfZnVuY3MgPSB7CiAJ LmRpc2FibGVfdmJsYW5rID0gdm9wX2NydGNfZGlzYWJsZV92YmxhbmssCiAJLnNldF9jcmNfc291 cmNlID0gdm9wX2NydGNfc2V0X2NyY19zb3VyY2UsCiAJLnZlcmlmeV9jcmNfc291cmNlID0gdm9w X2NydGNfdmVyaWZ5X2NyY19zb3VyY2UsCisJLmdhbW1hX3NldCA9IGRybV9hdG9taWNfaGVscGVy X2xlZ2FjeV9nYW1tYV9zZXQsCiB9OwogCiBzdGF0aWMgdm9pZCB2b3BfZmJfdW5yZWZfd29ya2Vy KHN0cnVjdCBkcm1fZmxpcF93b3JrICp3b3JrLCB2b2lkICp2YWwpCkBAIC0xNTE4LDYgKzE2MjMs MTAgQEAgc3RhdGljIGludCB2b3BfY3JlYXRlX2NydGMoc3RydWN0IHZvcCAqdm9wKQogCQlnb3Rv IGVycl9jbGVhbnVwX3BsYW5lczsKIAogCWRybV9jcnRjX2hlbHBlcl9hZGQoY3J0YywgJnZvcF9j cnRjX2hlbHBlcl9mdW5jcyk7CisJaWYgKHZvcC0+bHV0X3JlZ3MpIHsKKwkJZHJtX21vZGVfY3J0 Y19zZXRfZ2FtbWFfc2l6ZShjcnRjLCB2b3BfZGF0YS0+bHV0X3NpemUpOworCQlkcm1fY3J0Y19l bmFibGVfY29sb3JfbWdtdChjcnRjLCAwLCBmYWxzZSwgdm9wX2RhdGEtPmx1dF9zaXplKTsKKwl9 CiAKIAkvKgogCSAqIENyZWF0ZSBkcm1fcGxhbmVzIGZvciBvdmVybGF5IHdpbmRvd3Mgd2l0aCBw b3NzaWJsZV9jcnRjcyByZXN0cmljdGVkCkBAIC0xODIyLDYgKzE5MzEsMTcgQEAgc3RhdGljIGlu dCB2b3BfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9p ZCAqZGF0YSkKIAlpZiAoSVNfRVJSKHZvcC0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKHZvcC0+ cmVncyk7CiAKKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9N RU0sIDEpOworCWlmIChyZXMpIHsKKwkJaWYgKCF2b3BfZGF0YS0+bHV0X3NpemUpIHsKKwkJCURS TV9ERVZfRVJST1IoZGV2LCAibm8gZ2FtbWEgTFVUIHNpemUgZGVmaW5lZFxuIik7CisJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJfQorCQl2b3AtPmx1dF9yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNl KGRldiwgcmVzKTsKKwkJaWYgKElTX0VSUih2b3AtPmx1dF9yZWdzKSkKKwkJCXJldHVybiBQVFJf RVJSKHZvcC0+bHV0X3JlZ3MpOworCX0KKwogCXZvcC0+cmVnc2JhayA9IGRldm1fa3phbGxvYyhk ZXYsIHZvcC0+bGVuLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXZvcC0+cmVnc2JhaykKIAkJcmV0dXJu IC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX3ZvcC5oIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaApp bmRleCAyMTQ5YTg4OWMyOWQuLjQ4N2QxNzA5YjAzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oCkBAIC02Nyw2ICs2Nyw3IEBAIHN0cnVjdCB2b3BfY29t bW9uIHsKIAlzdHJ1Y3Qgdm9wX3JlZyBkaXRoZXJfZG93bl9tb2RlOwogCXN0cnVjdCB2b3BfcmVn IGRpdGhlcl9kb3duX2VuOwogCXN0cnVjdCB2b3BfcmVnIGRpdGhlcl91cDsKKwlzdHJ1Y3Qgdm9w X3JlZyBkc3BfbHV0X2VuOwogCXN0cnVjdCB2b3BfcmVnIGdhdGVfZW47CiAJc3RydWN0IHZvcF9y ZWcgbW11X2VuOwogCXN0cnVjdCB2b3BfcmVnIG91dF9tb2RlOwpAQCAtMTcwLDYgKzE3MSw3IEBA IHN0cnVjdCB2b3BfZGF0YSB7CiAJY29uc3Qgc3RydWN0IHZvcF93aW5feXV2Mnl1dl9kYXRhICp3 aW5feXV2Mnl1djsKIAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhICp3aW47CiAJdW5zaWduZWQg aW50IHdpbl9zaXplOworCXVuc2lnbmVkIGludCBsdXRfc2l6ZTsKIAogI2RlZmluZSBWT1BfRkVB VFVSRV9PVVRQVVRfUkdCMTAJQklUKDApCiAjZGVmaW5lIFZPUF9GRUFUVVJFX0lOVEVSTkFMX1JH QglCSVQoMSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92 b3BfcmVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCmlu ZGV4IGQxNDk0YmUxNDQ3MS4uNDJkZGNiNjk4YzgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKQEAgLTU5OCw2ICs1OTgsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHZvcF9jb21tb24gcmszMjg4X2NvbW1vbiA9IHsKIAkuZGl0aGVyX2Rvd25fZW4gPSBW T1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDEsIDB4MSwgMiksCiAJLnByZV9kaXRoZXJfZG93biA9IFZP UF9SRUcoUkszMjg4X0RTUF9DVFJMMSwgMHgxLCAxKSwKIAkuZGl0aGVyX3VwID0gVk9QX1JFRyhS SzMyODhfRFNQX0NUUkwxLCAweDEsIDYpLAorCS5kc3BfbHV0X2VuID0gVk9QX1JFRyhSSzMyODhf RFNQX0NUUkwxLCAweDEsIDApLAogCS5kYXRhX2JsYW5rID0gVk9QX1JFRyhSSzMyODhfRFNQX0NU UkwwLCAweDEsIDE5KSwKIAkuZHNwX2JsYW5rID0gVk9QX1JFRyhSSzMyODhfRFNQX0NUUkwwLCAw eDMsIDE4KSwKIAkub3V0X21vZGUgPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDAsIDB4ZiwgMCks CkBAIC02NDYsNiArNjQ3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMyODhf dm9wID0gewogCS5vdXRwdXQgPSAmcmszMjg4X291dHB1dCwKIAkud2luID0gcmszMjg4X3ZvcF93 aW5fZGF0YSwKIAkud2luX3NpemUgPSBBUlJBWV9TSVpFKHJrMzI4OF92b3Bfd2luX2RhdGEpLAor CS5sdXRfc2l6ZSA9IDEwMjQsCiB9OwogCiBzdGF0aWMgY29uc3QgaW50IHJrMzM2OF92b3BfaW50 cnNbXSA9IHsKLS0gCjIuMjIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs