From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bibby Hsieh Subject: [PATCH v3 1/2] drm/mediatek: Add gamma correction Date: Thu, 7 Jul 2016 15:37:08 +0800 Message-ID: <1467877029-45236-2-git-send-email-bibby.hsieh@mediatek.com> References: <1467877029-45236-1-git-send-email-bibby.hsieh@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467877029-45236-1-git-send-email-bibby.hsieh@mediatek.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie , Matthias Brugger , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org Cc: linux-kernel@vger.kernel.org, Cawa Cheng , Mao Huang , Yingjoe Chen , Sascha Hauer , linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org QXBwbHkgZ2FtbWEgZnVuY3Rpb24gdG8gY29ycmVjdCBicmlnaHRuZXNzIHZhbHVlcy4KSXQgYXBw bGllcyBhcmJpdHJhcnkgbWFwcGluZyBjdXJ2ZSB0byBjb21wZW5zYXRlIHRoZQppbmNvcnJlY3Qg dHJhbnNmZXIgZnVuY3Rpb24gb2YgdGhlIHBhbmVsLgoKU2lnbmVkLW9mZi1ieTogQmliYnkgSHNp ZWggPGJpYmJ5LmhzaWVoQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RybV9jcnRjLmMgICAgIHwgICAgOCArKysKIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHJtX2NydGMuaCAgICAgfCAgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2RkcF9jb21wLmMgfCAgIDg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaCB8ICAgMTAgKysrCiA0IGZp bGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYwppbmRleCAyNGFhM2JhLi5lZTIxOWJiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jCkBAIC00MDksNiArNDA5LDEwIEBA IHN0YXRpYyB2b2lkIG10a19kcm1fY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpj cnRjLAogCX0KIAlpZiAocGVuZGluZ19wbGFuZXMpCiAJCW10a19jcnRjLT5wZW5kaW5nX3BsYW5l cyA9IHRydWU7CisJaWYgKGNydGMtPnN0YXRlLT5jb2xvcl9tZ210X2NoYW5nZWQpCisJCWZvciAo aSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykKKwkJCW10a19kZHBfZ2FtbWFf c2V0KG10a19jcnRjLT5kZHBfY29tcFtpXSwgY3J0Yy0+c3RhdGUpOworCiB9CiAKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgbXRrX2NydGNfZnVuY3MgPSB7CkBAIC00MTgsNiAr NDIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBtdGtfY3J0Y19mdW5j cyA9IHsKIAkucmVzZXQJCQk9IG10a19kcm1fY3J0Y19yZXNldCwKIAkuYXRvbWljX2R1cGxpY2F0 ZV9zdGF0ZQk9IG10a19kcm1fY3J0Y19kdXBsaWNhdGVfc3RhdGUsCiAJLmF0b21pY19kZXN0cm95 X3N0YXRlCT0gbXRrX2RybV9jcnRjX2Rlc3Ryb3lfc3RhdGUsCisJLmdhbW1hX3NldAkJPSBkcm1f YXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgbXRrX2NydGNfaGVscGVyX2Z1bmNzID0gewpAQCAtNTY5 LDYgKzU3NCw5IEBAIGludCBtdGtfZHJtX2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2LAogCWlmIChyZXQgPCAwKQogCQlnb3RvIHVucHJlcGFyZTsKIAorCWRybV9tb2RlX2Ny dGNfc2V0X2dhbW1hX3NpemUoJm10a19jcnRjLT5iYXNlLCBNVEtfTFVUX1NJWkUpOworCWRybV9o ZWxwZXJfY3J0Y19lbmFibGVfY29sb3JfbWdtdCgmbXRrX2NydGMtPmJhc2UsIE1US19MVVRfU0la RSwKKwkJCQkJICBNVEtfTFVUX1NJWkUpOwogCXByaXYtPmNydGNbcGlwZV0gPSAmbXRrX2NydGMt PmJhc2U7CiAJcHJpdi0+bnVtX3BpcGVzKys7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZHJtX2NydGMuaAppbmRleCA4MWU1NTY2Li5kMzMyNTY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fY3J0Yy5oCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSAibXRrX2RybV9w bGFuZS5oIgogCiAjZGVmaW5lIE9WTF9MQVlFUl9OUgk0CisjZGVmaW5lIE1US19MVVRfU0laRQk1 MTIKIAogaW50IG10a19kcm1fY3J0Y19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpk cm0sIHVuc2lnbmVkIGludCBwaXBlKTsKIHZvaWQgbXRrX2RybV9jcnRjX2Rpc2FibGVfdmJsYW5r KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVuc2lnbmVkIGludCBwaXBlKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCmluZGV4IDM5NzBmY2YuLjU2YzU4OTQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYwpAQCAtMjQs NiArMjQsNyBAQAogI2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiCiAjaW5jbHVkZSAibXRrX2RybV9w bGFuZS5oIgogI2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCIKKyNpbmNsdWRlICJtdGtfZHJt X2NydGMuaCIKIAogI2RlZmluZSBESVNQX09EX0VOCQkJCTB4MDAwMAogI2RlZmluZSBESVNQX09E X0lOVEVOCQkJCTB4MDAwOApAQCAtMzgsNiArMzksMjEgQEAKICNkZWZpbmUgRElTUF9DT0xPUl9X SURUSAkJCTB4MGM1MAogI2RlZmluZSBESVNQX0NPTE9SX0hFSUdIVAkJCTB4MGM1NAogCisjZGVm aW5lIERJU1BfQUFMX0VOCQkJCTB4MDAwCisjZGVmaW5lIERJU1BfQUFMX1NJWkUJCQkJMHgwMzAK KworI2RlZmluZSBESVNQX0dBTU1BX0VOCQkJCTB4MDAwCisjZGVmaW5lIERJU1BfR0FNTUFfQ0ZH CQkJCTB4MDIwCisjZGVmaW5lIERJU1BfR0FNTUFfU0laRQkJCQkweDAzMAorI2RlZmluZSBESVNQ X0dBTU1BX0xVVAkJCQkweDcwMAorCisjZGVmaW5lIExVVF8xMEJJVF9NQVNLCQkJCTB4M2ZmCisK KyNkZWZpbmUgQUFMX0VOCQkJQklUKDApCisKKyNkZWZpbmUgR0FNTUFfRU4JCUJJVCgwKQorI2Rl ZmluZSBHQU1NQV9MVVRfRU4JCUJJVCgxKQorCiAjZGVmaW5lCU9EX1JFTEFZX01PREUJCUJJVCgw KQogCiAjZGVmaW5lCVVGT19CWVBBU1MJCUJJVCgyKQpAQCAtNzYsNiArOTIsNjEgQEAgc3RhdGlj IHZvaWQgbXRrX3Vmb2Vfc3RhcnQoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKIAl3cml0ZWwo VUZPX0JZUEFTUywgY29tcC0+cmVncyArIERJU1BfUkVHX1VGT19TVEFSVCk7CiB9CiAKK3N0YXRp YyB2b2lkIG10a19hYWxfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVk IGludCB3LAorCQkJICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCkKK3sK Kwl3cml0ZWwoaCA8PCAxNiB8IHcsIGNvbXAtPnJlZ3MgKyBESVNQX0FBTF9TSVpFKTsKK30KKwor c3RhdGljIHZvaWQgbXRrX2FhbF9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQorewor CXdyaXRlbChBQUxfRU4sIGNvbXAtPnJlZ3MgICsgRElTUF9BQUxfRU4pOworfQorCitzdGF0aWMg dm9pZCBtdGtfYWFsX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKK3sKKwl3cml0ZWxf cmVsYXhlZCgweDAsIGNvbXAtPnJlZ3MgICsgRElTUF9BQUxfRU4pOworfQorCitzdGF0aWMgdm9p ZCBtdGtfZ2FtbWFfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGlu dCB3LAorCQkJICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoKQorewor CXdyaXRlbChoIDw8IDE2IHwgdywgY29tcC0+cmVncyArIERJU1BfR0FNTUFfU0laRSk7Cit9CisK K3N0YXRpYyB2b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQor eworCXdyaXRlbChHQU1NQV9FTiwgY29tcC0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKK30KKwor c3RhdGljIHZvaWQgbXRrX2dhbW1hX3N0b3Aoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCkKK3sK Kwl3cml0ZWxfcmVsYXhlZCgweDAsIGNvbXAtPnJlZ3MgICsgRElTUF9HQU1NQV9FTik7Cit9CisK K3N0YXRpYyB2b2lkIG10a19nYW1tYV9zZXQoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwKKwkJ CSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKK3sKKwl1bnNpZ25lZCBpbnQgaSwgcmVn OworCXN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQ7CisJdm9pZCBfX2lvbWVtICpsdXRfYmFzZTsK Kwl1MzIgd29yZDsKKworCWlmIChzdGF0ZS0+Z2FtbWFfbHV0KSB7CisJCXJlZyA9IHJlYWRsKGNv bXAtPnJlZ3MgKyBESVNQX0dBTU1BX0NGRyk7CisJCXJlZyA9IHJlZyB8IEdBTU1BX0xVVF9FTjsK KwkJd3JpdGVsKHJlZywgY29tcC0+cmVncyArIERJU1BfR0FNTUFfQ0ZHKTsKKwkJbHV0X2Jhc2Ug PSBjb21wLT5yZWdzICsgRElTUF9HQU1NQV9MVVQ7CisJCWx1dCA9IChzdHJ1Y3QgZHJtX2NvbG9y X2x1dCAqKXN0YXRlLT5nYW1tYV9sdXQtPmRhdGE7CisJCWZvciAoaSA9IDA7IGkgPCBNVEtfTFVU X1NJWkU7IGkrKykgeworCQkJd29yZCA9ICgoKGx1dFtpXS5yZWQgPj4gNikgJiBMVVRfMTBCSVRf TUFTSykgPDwgMjApICsKKwkJCSAgICAgICgoKGx1dFtpXS5ncmVlbiA+PiA2KSAmIExVVF8xMEJJ VF9NQVNLKSA8PCAxMCkgKworCQkJICAgICAgKChsdXRbaV0uYmx1ZSA+PiA2KSAmIExVVF8xMEJJ VF9NQVNLKTsKKwkJCXdyaXRlbCh3b3JkLCAobHV0X2Jhc2UgKyBpICogNCkpOworCQl9CisJfQor fQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfY29sb3IgPSB7 CiAJLmNvbmZpZyA9IG10a19jb2xvcl9jb25maWcsCiAJLnN0YXJ0ID0gbXRrX2NvbG9yX3N0YXJ0 LApAQCAtOTAsNiArMTYxLDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1 bmNzIGRkcF91Zm9lID0gewogCS5zdGFydCA9IG10a191Zm9lX3N0YXJ0LAogfTsKIAorc3RhdGlj IGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgZGRwX2FhbCA9IHsKKwkuZ2FtbWFfc2V0 ID0gbXRrX2dhbW1hX3NldCwKKwkuY29uZmlnID0gbXRrX2FhbF9jb25maWcsCisJLnN0YXJ0ID0g bXRrX2FhbF9zdGFydCwKKwkuc3RvcCA9IG10a19hYWxfc3RvcCwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIGRkcF9nYW1tYSA9IHsKKwkuZ2FtbWFfc2V0ID0g bXRrX2dhbW1hX3NldCwKKwkuY29uZmlnID0gbXRrX2dhbW1hX2NvbmZpZywKKwkuc3RhcnQgPSBt dGtfZ2FtbWFfc3RhcnQsCisJLnN0b3AgPSBtdGtfZ2FtbWFfc3RvcCwKK307CisKIHN0YXRpYyBj b25zdCBjaGFyICogY29uc3QgbXRrX2RkcF9jb21wX3N0ZW1bTVRLX0REUF9DT01QX1RZUEVfTUFY XSA9IHsKIAlbTVRLX0RJU1BfT1ZMXSA9ICJvdmwiLAogCVtNVEtfRElTUF9SRE1BXSA9ICJyZG1h IiwKQEAgLTExMiwxMyArMTk3LDEzIEBAIHN0cnVjdCBtdGtfZGRwX2NvbXBfbWF0Y2ggewogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfbWF0Y2ggbXRrX2RkcF9tYXRjaGVz W0REUF9DT01QT05FTlRfSURfTUFYXSA9IHsKLQlbRERQX0NPTVBPTkVOVF9BQUxdCT0geyBNVEtf RElTUF9BQUwsCTAsIE5VTEwgfSwKKwlbRERQX0NPTVBPTkVOVF9BQUxdCT0geyBNVEtfRElTUF9B QUwsCTAsICZkZHBfYWFsIH0sCiAJW0REUF9DT01QT05FTlRfQ09MT1IwXQk9IHsgTVRLX0RJU1Bf Q09MT1IsCTAsICZkZHBfY29sb3IgfSwKIAlbRERQX0NPTVBPTkVOVF9DT0xPUjFdCT0geyBNVEtf RElTUF9DT0xPUiwJMSwgJmRkcF9jb2xvciB9LAogCVtERFBfQ09NUE9ORU5UX0RQSTBdCT0geyBN VEtfRFBJLAkJMCwgTlVMTCB9LAogCVtERFBfQ09NUE9ORU5UX0RTSTBdCT0geyBNVEtfRFNJLAkJ MCwgTlVMTCB9LAogCVtERFBfQ09NUE9ORU5UX0RTSTFdCT0geyBNVEtfRFNJLAkJMSwgTlVMTCB9 LAotCVtERFBfQ09NUE9ORU5UX0dBTU1BXQk9IHsgTVRLX0RJU1BfR0FNTUEsCTAsIE5VTEwgfSwK KwlbRERQX0NPTVBPTkVOVF9HQU1NQV0JPSB7IE1US19ESVNQX0dBTU1BLAkwLCAmZGRwX2dhbW1h IH0sCiAJW0REUF9DT01QT05FTlRfT0RdCT0geyBNVEtfRElTUF9PRCwJMCwgJmRkcF9vZCB9LAog CVtERFBfQ09NUE9ORU5UX09WTDBdCT0geyBNVEtfRElTUF9PVkwsCTAsIE5VTEwgfSwKIAlbRERQ X0NPTVBPTkVOVF9PVkwxXQk9IHsgTVRLX0RJU1BfT1ZMLAkxLCBOVUxMIH0sCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaAppbmRleCA2YjEzYmE5Li4wN2UxN2Zl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgKQEAgLTIw LDYgKzIwLDcgQEAgc3RydWN0IGRldmljZTsKIHN0cnVjdCBkZXZpY2Vfbm9kZTsKIHN0cnVjdCBk cm1fY3J0YzsKIHN0cnVjdCBkcm1fZGV2aWNlOworc3RydWN0IGRybV9jcnRjX3N0YXRlOwogc3Ry dWN0IG10a19wbGFuZV9zdGF0ZTsKIAogZW51bSBtdGtfZGRwX2NvbXBfdHlwZSB7CkBAIC03Myw2 ICs3NCw4IEBAIHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgewogCXZvaWQgKCpsYXllcl9vZmYp KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgpOwogCXZvaWQgKCps YXllcl9jb25maWcpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgs CiAJCQkgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlKTsKKwl2b2lkICgqZ2FtbWFf c2V0KShzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLAorCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlKTsKIH07CiAKIHN0cnVjdCBtdGtfZGRwX2NvbXAgewpAQCAtMTM5LDYgKzE0Miwx MyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2RkcF9jb21wX2xheWVyX2NvbmZpZyhzdHJ1Y3Qg bXRrX2RkcF9jb21wICpjb21wLAogCQljb21wLT5mdW5jcy0+bGF5ZXJfY29uZmlnKGNvbXAsIGlk eCwgc3RhdGUpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgbXRrX2RkcF9nYW1tYV9zZXQoc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCwKKwkJCQkgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq c3RhdGUpCit7CisJaWYgKGNvbXAtPmZ1bmNzICYmIGNvbXAtPmZ1bmNzLT5nYW1tYV9zZXQpCisJ CWNvbXAtPmZ1bmNzLT5nYW1tYV9zZXQoY29tcCwgc3RhdGUpOworfQorCiBpbnQgbXRrX2RkcF9j b21wX2dldF9pZChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJCQllbnVtIG10a19kZHBfY29t cF90eXBlIGNvbXBfdHlwZSk7CiBpbnQgbXRrX2RkcF9jb21wX2luaXQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKmNvbXBfbm9kZSwKLS0gCjEuNy45LjUKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=