From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ezequiel Garcia Subject: [PATCH 2/3] drm/rockchip: Add optional support for CRTC gamma LUT Date: Tue, 18 Jun 2019 18:34:05 -0300 Message-ID: <20190618213406.7667-3-ezequiel@collabora.com> References: <20190618213406.7667-1-ezequiel@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190618213406.7667-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 Z2VzIGZyb20gUkZDOgoqIFJlcXVlc3QgKGFuIG9wdGlvbmFsKSBhZGRyZXNzIHJlc291cmNlIGZv ciB0aGUgTFVULgoqIERyb3Agc3VwcG9ydCBmb3IgUkszMzk5LCB3aGljaCBkb2Vzbid0IHNlZW0g dG8gd29yawogIG91dCBvZiB0aGUgYm94IGFuZCBuZWVkcyBtb3JlIHJlc2VhcmNoLgoqIFN1cHBv cnQgcGFzcy10aHJ1IHNldHRpbmcgd2hlbiBHQU1NQV9MVVQgaXMgTlVMTC4KKiBBZGQgYSBjaGVj ayBmb3IgdGhlIGdhbW1hIHNpemUsIGFzIHN1Z2dlc3RlZCBieSBJbGlhLgoqIE1vdmUgZ2FtbWEg c2V0dGluZyB0byBhdG9taWNfY29tbWl0X3RhaWwsIGFzIHBvaW50ZWQKICBvdXQgYnkgSmFjb3Bv L0xhdXJlbnQsIGlzIHRoZSBjb3JyZWN0IHdheS4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX2ZiLmMgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fdm9wLmMgfCAxMDYgKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmggfCAgIDcgKysKIGRyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgfCAgIDIgKwogNCBmaWxlcyBjaGFuZ2VkLCAx MTggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1f ZmIuYwppbmRleCAxYzY5MDY2YjY4OTQuLmJmOWFkNjI0MDk3MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmIuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUg InJvY2tjaGlwX2RybV9mYi5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV9nZW0uaCIKICNpbmNs dWRlICJyb2NrY2hpcF9kcm1fcHNyLmgiCisjaW5jbHVkZSAicm9ja2NoaXBfZHJtX3ZvcC5oIgog CiBzdGF0aWMgaW50IHJvY2tjaGlwX2RybV9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiwKIAkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlLApAQCAtMTI4LDYgKzEyOSw4IEBAIHJv Y2tjaGlwX2F0b21pY19oZWxwZXJfY29tbWl0X3RhaWxfcnBtKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpvbGRfc3RhdGUpCiAKIAlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNh YmxlcyhkZXYsIG9sZF9zdGF0ZSk7CiAKKwlyb2NrY2hpcF9kcm1fdm9wX2dhbW1hX3NldChvbGRf c3RhdGUpOworCiAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhkZXYs IG9sZF9zdGF0ZSk7CiAKIAlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzKGRldiwgb2xk X3N0YXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2Ry bV92b3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKaW5k ZXggMTJlZDUyNjVhOTBiLi41YjZlZGJlMjY3M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX2RybV92b3AuYwpAQCAtMTM3LDYgKzEzNyw3IEBAIHN0cnVjdCB2b3Agewog CiAJdWludDMyX3QgKnJlZ3NiYWs7CiAJdm9pZCBfX2lvbWVtICpyZWdzOworCXZvaWQgX19pb21l bSAqbHV0X3JlZ3M7CiAKIAkvKiBwaHlzaWNhbCBtYXAgbGVuZ3RoIG9mIHZvcCByZWdpc3RlciAq LwogCXVpbnQzMl90IGxlbjsKQEAgLTExNTMsNiArMTE1NCw5NCBAQCBzdGF0aWMgdm9pZCB2b3Bf d2FpdF9mb3JfaXJxX2hhbmRsZXIoc3RydWN0IHZvcCAqdm9wKQogCXN5bmNocm9uaXplX2lycSh2 b3AtPmlycSk7CiB9CiAKK3N0YXRpYyBib29sIHZvcF9kc3BfbHV0X2lzX2VuYWJsZShzdHJ1Y3Qg dm9wICp2b3ApCit7CisJcmV0dXJuIHZvcF9yZWFkX3JlZyh2b3AsIDAsICZ2b3AtPmRhdGEtPmNv bW1vbi0+ZHNwX2x1dF9lbik7Cit9CisKK3N0YXRpYyB2b2lkIHZvcF9jcnRjX3dyaXRlX2dhbW1h X2x1dChzdHJ1Y3Qgdm9wICp2b3AsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3Qg ZHJtX2NvbG9yX2x1dCAqbHV0ID0gY3J0Yy0+c3RhdGUtPmdhbW1hX2x1dC0+ZGF0YTsKKwlpbnQg aTsKKworCWZvciAoaSA9IDA7IGkgPCBjcnRjLT5nYW1tYV9zaXplOyBpKyspIHsKKwkJdTMyIHdv cmQ7CisKKwkJd29yZCA9IChkcm1fY29sb3JfbHV0X2V4dHJhY3QobHV0W2ldLnJlZCwgMTApIDw8 IDIwKSB8CisJCSAgICAgICAoZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5ncmVlbiwgMTAp IDw8IDEwKSB8CisJCQlkcm1fY29sb3JfbHV0X2V4dHJhY3QobHV0W2ldLmJsdWUsIDEwKTsKKwkJ d3JpdGVsKHdvcmQsIHZvcC0+bHV0X3JlZ3MgKyBpICogNCk7CisJfQorfQorCitzdGF0aWMgdm9p ZCB2b3BfY3J0Y19nYW1tYV9zZXQoc3RydWN0IHZvcCAqdm9wLCBzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCisJCQkgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCit7CisJaW50 IGlkbGUsIHJldCwgaTsKKworCXNwaW5fbG9jaygmdm9wLT5yZWdfbG9jayk7CisJVk9QX1JFR19T RVQodm9wLCBjb21tb24sIGRzcF9sdXRfZW4sIDApOworCXZvcF9jZmdfZG9uZSh2b3ApOworCXNw aW5fdW5sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKKworCXJldCA9IHJlYWR4X3BvbGxfdGltZW91dCh2 b3BfZHNwX2x1dF9pc19lbmFibGUsIHZvcCwKKwkJCSAgIGlkbGUsICFpZGxlLCA1LCAzMCAqIDEw MDApOworCWlmIChyZXQpCisJCXJldHVybjsKKworCXNwaW5fbG9jaygmdm9wLT5yZWdfbG9jayk7 CisKKwlpZiAoY3J0Yy0+c3RhdGUtPmdhbW1hX2x1dCkgeworCQlpZiAoIW9sZF9zdGF0ZS0+Z2Ft bWFfbHV0IHx8IChjcnRjLT5zdGF0ZS0+Z2FtbWFfbHV0LT5iYXNlLmlkICE9CisJCQkJCSAgICAg IG9sZF9zdGF0ZS0+Z2FtbWFfbHV0LT5iYXNlLmlkKSkKKwkJCXZvcF9jcnRjX3dyaXRlX2dhbW1h X2x1dCh2b3AsIGNydGMpOworCX0gZWxzZSB7CisJCWZvciAoaSA9IDA7IGkgPCBjcnRjLT5nYW1t YV9zaXplOyBpKyspIHsKKwkJCXUzMiB3b3JkOworCisJCQl3b3JkID0gKGkgPDwgMjApIHwgKGkg PDwgMTApIHwgaTsKKwkJCXdyaXRlbCh3b3JkLCB2b3AtPmx1dF9yZWdzICsgaSAqIDQpOworCQl9 CisJfQorCisJVk9QX1JFR19TRVQodm9wLCBjb21tb24sIGRzcF9sdXRfZW4sIDEpOworCXZvcF9j ZmdfZG9uZSh2b3ApOworCXNwaW5fdW5sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKK30KKworc3RhdGlj IGludCB2b3BfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAg IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3Qgdm9wICp2b3Ag PSB0b192b3AoY3J0Yyk7CisKKwlpZiAodm9wLT5sdXRfcmVncyAmJiBjcnRjX3N0YXRlLT5jb2xv cl9tZ210X2NoYW5nZWQgJiYKKwkgICAgY3J0Y19zdGF0ZS0+Z2FtbWFfbHV0KSB7CisJCWludCBs ZW47CisKKwkJbGVuID0gZHJtX2NvbG9yX2x1dF9zaXplKGNydGNfc3RhdGUtPmdhbW1hX2x1dCk7 CisJCWlmIChsZW4gIT0gY3J0Yy0+Z2FtbWFfc2l6ZSkgeworCQkJRFJNX0RFQlVHX0tNUygiSW52 YWxpZCBMVVQgc2l6ZTsgZ290ICVkLCBleHBlY3RlZCAlZFxuIiwKKwkJCQkgICAgICBsZW4sIGNy dGMtPmdhbW1hX3NpemUpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisJcmV0dXJuIDA7 Cit9CisKK3ZvaWQgcm9ja2NoaXBfZHJtX3ZvcF9nYW1tYV9zZXQoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7 CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCWludCBpOworCisJZm9yX2VhY2hfb2xkX2NydGNf aW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBpKSB7CisJCXN0cnVjdCB2b3Ag KnZvcCA9IHRvX3ZvcChjcnRjKTsKKworCQlpZiAodm9wLT5sdXRfcmVncyAmJiBjcnRjLT5zdGF0 ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkKQorCQkJdm9wX2NydGNfZ2FtbWFfc2V0KHZvcCwgY3J0Yywg b2xkX2NydGNfc3RhdGUpOworCX0KK30KKwogc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2Zs dXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq b2xkX2NydGNfc3RhdGUpCiB7CkBAIC0xMjA1LDYgKzEyOTQsNyBAQCBzdGF0aWMgdm9pZCB2b3Bf Y3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB2b3BfY3J0Y19oZWxwZXJfZnVuY3MgPSB7CiAJ Lm1vZGVfZml4dXAgPSB2b3BfY3J0Y19tb2RlX2ZpeHVwLAorCS5hdG9taWNfY2hlY2sgPSB2b3Bf Y3J0Y19hdG9taWNfY2hlY2ssCiAJLmF0b21pY19mbHVzaCA9IHZvcF9jcnRjX2F0b21pY19mbHVz aCwKIAkuYXRvbWljX2VuYWJsZSA9IHZvcF9jcnRjX2F0b21pY19lbmFibGUsCiAJLmF0b21pY19k aXNhYmxlID0gdm9wX2NydGNfYXRvbWljX2Rpc2FibGUsCkBAIC0xMzIzLDYgKzE0MTMsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZvcF9jcnRjX2Z1bmNzID0gewogCS5k aXNhYmxlX3ZibGFuayA9IHZvcF9jcnRjX2Rpc2FibGVfdmJsYW5rLAogCS5zZXRfY3JjX3NvdXJj ZSA9IHZvcF9jcnRjX3NldF9jcmNfc291cmNlLAogCS52ZXJpZnlfY3JjX3NvdXJjZSA9IHZvcF9j cnRjX3ZlcmlmeV9jcmNfc291cmNlLAorCS5nYW1tYV9zZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9s ZWdhY3lfZ2FtbWFfc2V0LAogfTsKIAogc3RhdGljIHZvaWQgdm9wX2ZiX3VucmVmX3dvcmtlcihz dHJ1Y3QgZHJtX2ZsaXBfd29yayAqd29yaywgdm9pZCAqdmFsKQpAQCAtMTQ4MCw2ICsxNTcxLDEw IEBAIHN0YXRpYyBpbnQgdm9wX2NyZWF0ZV9jcnRjKHN0cnVjdCB2b3AgKnZvcCkKIAkJZ290byBl cnJfY2xlYW51cF9wbGFuZXM7CiAKIAlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZ2b3BfY3J0 Y19oZWxwZXJfZnVuY3MpOworCWlmICh2b3BfZGF0YS0+bHV0X3NpemUpIHsKKwkJZHJtX21vZGVf Y3J0Y19zZXRfZ2FtbWFfc2l6ZShjcnRjLCB2b3BfZGF0YS0+bHV0X3NpemUpOworCQlkcm1fY3J0 Y19lbmFibGVfY29sb3JfbWdtdChjcnRjLCAwLCBmYWxzZSwgdm9wX2RhdGEtPmx1dF9zaXplKTsK Kwl9CiAKIAkvKgogCSAqIENyZWF0ZSBkcm1fcGxhbmVzIGZvciBvdmVybGF5IHdpbmRvd3Mgd2l0 aCBwb3NzaWJsZV9jcnRjcyByZXN0cmljdGVkCkBAIC0xNzc2LDYgKzE4NzEsMTcgQEAgc3RhdGlj IGludCB2b3BfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwg dm9pZCAqZGF0YSkKIAlpZiAoSVNfRVJSKHZvcC0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKHZv cC0+cmVncyk7CiAKKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElP UkVTT1VSQ0VfTUVNLCAibHV0Iik7CisJaWYgKHJlcykgeworCQlpZiAoIXZvcF9kYXRhLT5sdXRf c2l6ZSkgeworCQkJRFJNX0RFVl9FUlJPUihkZXYsICJubyBnYW1tYSBMVVQgc2l6ZSBkZWZpbmVk XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCXZvcC0+bHV0X3JlZ3MgPSBkZXZtX2lv cmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOworCQlpZiAoSVNfRVJSKHZvcC0+bHV0X3JlZ3MpKQor CQkJcmV0dXJuIFBUUl9FUlIodm9wLT5sdXRfcmVncyk7CisJfQorCiAJdm9wLT5yZWdzYmFrID0g ZGV2bV9remFsbG9jKGRldiwgdm9wLT5sZW4sIEdGUF9LRVJORUwpOwogCWlmICghdm9wLT5yZWdz YmFrKQogCQlyZXR1cm4gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fdm9wLmggYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX3ZvcC5oCmluZGV4IDIxNDlhODg5YzI5ZC4uYmQxYmNkNWExNGU5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmgKQEAgLTcsNiArNyw4IEBACiAj aWZuZGVmIF9ST0NLQ0hJUF9EUk1fVk9QX0gKICNkZWZpbmUgX1JPQ0tDSElQX0RSTV9WT1BfSAog CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KKwogLyoKICAqIG1ham9yOiBJUCBtYWpvciB2 ZXJzaW9uLCB1c2VkIGZvciBJUCBzdHJ1Y3R1cmUKICAqIG1pbm9yOiBiaWcgZmVhdHVyZSBjaGFu Z2UgdW5kZXIgc2FtZSBzdHJ1Y3R1cmUKQEAgLTY3LDYgKzY5LDcgQEAgc3RydWN0IHZvcF9jb21t b24gewogCXN0cnVjdCB2b3BfcmVnIGRpdGhlcl9kb3duX21vZGU7CiAJc3RydWN0IHZvcF9yZWcg ZGl0aGVyX2Rvd25fZW47CiAJc3RydWN0IHZvcF9yZWcgZGl0aGVyX3VwOworCXN0cnVjdCB2b3Bf cmVnIGRzcF9sdXRfZW47CiAJc3RydWN0IHZvcF9yZWcgZ2F0ZV9lbjsKIAlzdHJ1Y3Qgdm9wX3Jl ZyBtbXVfZW47CiAJc3RydWN0IHZvcF9yZWcgb3V0X21vZGU7CkBAIC0xNzAsNiArMTczLDcgQEAg c3RydWN0IHZvcF9kYXRhIHsKIAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl95dXYyeXV2X2RhdGEgKndp bl95dXYyeXV2OwogCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbjsKIAl1bnNpZ25lZCBp bnQgd2luX3NpemU7CisJdW5zaWduZWQgaW50IGx1dF9zaXplOwogCiAjZGVmaW5lIFZPUF9GRUFU VVJFX09VVFBVVF9SR0IxMAlCSVQoMCkKICNkZWZpbmUgVk9QX0ZFQVRVUkVfSU5URVJOQUxfUkdC CUJJVCgxKQpAQCAtMzczLDQgKzM3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNjbF92b3BfY2Fs X2xiX21vZGUoaW50IHdpZHRoLCBib29sIGlzX3l1dikKIH0KIAogZXh0ZXJuIGNvbnN0IHN0cnVj dCBjb21wb25lbnRfb3BzIHZvcF9jb21wb25lbnRfb3BzOworCit2b2lkIHJvY2tjaGlwX2RybV92 b3BfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CisKICNlbmRpZiAv KiBfUk9DS0NISVBfRFJNX1ZPUF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX3ZvcF9yZWcuYwppbmRleCA3YjljNzQ3NTBmNmQuLjMwZDQ5ZWZmMzY3MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCkBAIC01OTMsNiArNTkzLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfY29tbW9uIHJrMzI4OF9jb21tb24gPSB7CiAJLmRp dGhlcl9kb3duX2VuID0gVk9QX1JFRyhSSzMyODhfRFNQX0NUUkwxLCAweDEsIDIpLAogCS5wcmVf ZGl0aGVyX2Rvd24gPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDEsIDB4MSwgMSksCiAJLmRpdGhl cl91cCA9IFZPUF9SRUcoUkszMjg4X0RTUF9DVFJMMSwgMHgxLCA2KSwKKwkuZHNwX2x1dF9lbiA9 IFZPUF9SRUcoUkszMjg4X0RTUF9DVFJMMSwgMHgxLCAwKSwKIAkuZGF0YV9ibGFuayA9IFZPUF9S RUcoUkszMjg4X0RTUF9DVFJMMCwgMHgxLCAxOSksCiAJLmRzcF9ibGFuayA9IFZPUF9SRUcoUksz Mjg4X0RTUF9DVFJMMCwgMHgzLCAxOCksCiAJLm91dF9tb2RlID0gVk9QX1JFRyhSSzMyODhfRFNQ X0NUUkwwLCAweGYsIDApLApAQCAtNjQxLDYgKzY0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dm9wX2RhdGEgcmszMjg4X3ZvcCA9IHsKIAkub3V0cHV0ID0gJnJrMzI4OF9vdXRwdXQsCiAJLndp biA9IHJrMzI4OF92b3Bfd2luX2RhdGEsCiAJLndpbl9zaXplID0gQVJSQVlfU0laRShyazMyODhf dm9wX3dpbl9kYXRhKSwKKwkubHV0X3NpemUgPSAxMDI0LAogfTsKIAogc3RhdGljIGNvbnN0IGlu dCByazMzNjhfdm9wX2ludHJzW10gPSB7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==