From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v4 1/2] drm: Add color management LUT validation helper (v4) Date: Mon, 17 Dec 2018 14:44:14 -0800 Message-ID: <20181217224415.12848-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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, intel-gfx@lists.freedesktop.org Cc: Swati Sharma , Uma Shankar List-Id: dri-devel@lists.freedesktop.org U29tZSBoYXJkd2FyZSBtYXkgcGxhY2UgYWRkaXRpb25hbCByZXN0cmljdGlvbnMgb24gdGhlIGdh bW1hL2RlZ2FtbWEKY3VydmVzIGRlc2NyaWJlZCBieSBvdXIgTFVUIHByb3BlcnRpZXMuICBFLmcu LCB0aGF0IGEgZ2FtbWEgY3VydmUgbmV2ZXIKZGVjcmVhc2VzIG9yIHRoYXQgdGhlIHJlZC9ncmVl bi9ibHVlIGNoYW5uZWxzIG9mIGEgTFVUJ3MgZW50cmllcyBtdXN0IGJlCmVxdWFsLiAgTGV0J3Mg YWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgZHJpdmVycyBjYW4gdXNlIHRvIHRlc3QgdGhhdCBh CnVzZXJzcGFjZS1wcm92aWRlZCBMVVQgaXMgdmFsaWQgYW5kIGRvZXNuJ3QgdmlvbGF0ZSBoYXJk d2FyZQpyZXF1aXJlbWVudHMuCgp2MjoKIC0gQ29tYmluZSBpbnRvIGEgc2luZ2xlIGhlbHBlciB0 aGF0IGp1c3QgdGFrZXMgYSBiaXRtYXNrIG9mIHRoZSB0ZXN0cwogICB0byBhcHBseS4gIChCcmlh biBTdGFya2V5KQogLSBBZGQgYWRkaXRpb25hbCBjaGVjayAoYWx3YXlzIHBlcmZvcm1lZCkgdGhh dCBMVVQgcHJvcGVydHkgYmxvYiBzaXplCiAgIGlzIGFsd2F5cyBhIG11bHRpcGxlIG9mIHRoZSBM VVQgZW50cnkgc2l6ZS4gIChzdG9sZW4gZnJvbSBBUk0gZHJpdmVyKQoKdjM6CiAtIERyb3AgdGhl IExVVCBzaXplIGNoZWNrIGFnYWluIHNpbmNlCiAgIGRybV9hdG9taWNfcmVwbGFjZV9wcm9wZXJ0 eV9ibG9iX2Zyb21faWQoKSBhbHJlYWR5IGNvdmVycyB0aGlzIGZvcgogICB1cy4gIChBbGV4YW5k cnUgR2hlb3JnaGUpCgp2NDoKIC0gVXNlIGFuIGVudW0gdG8gZGVzY3JpYmUgcG9zc2libGUgdGVz dCB2YWx1ZXMgcmF0aGVyIHRoYW4gI2RlZmluZSdzOwogICB0aGlzIGlzIGNsZWFuZXIgdG8gcHJv dmlkZSBrZXJuZWxkb2MgZm9yLiAgKERhbmllbCBWZXR0ZXIpCiAtIHMvRFJNX0NPTE9SX0xVVF9J TkNSRUFTSU5HL0RSTV9DT0xPUl9MVVRfTk9OX0RFQ1JFQVNJTkcvLiAgKFZpbGxlKQoKQ2M6IFVt YSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+CkNjOiBTd2F0aSBTaGFybWEgPHN3YXRp Mi5zaGFybWFAaW50ZWwuY29tPgpDYzogQnJpYW4gU3RhcmtleSA8QnJpYW4uU3RhcmtleUBhcm0u Y29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dCBS b3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnkodjEpOiBCcmlhbiBT dGFya2V5IDxicmlhbi5zdGFya2V5QGFybS5jb20+ClJldmlld2VkLWJ5OiBBbGV4YW5kcnUgR2hl b3JnaGUgPGFsZXhhbmRydS1jb3NtaW4uZ2hlb3JnaGVAYXJtLmNvbT4KUmV2aWV3ZWQtYnk6IFVt YSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9jb2xvcl9tZ210LmMgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBpbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oICAgICB8IDI5ICsrKysrKysrKysrKysr KysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fY29sb3JfbWdtdC5jCmluZGV4IDA3ZGNmNDdkYWFmZS4uOTY4Y2E3YzkxYWQ4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NvbG9yX21nbXQuYwpAQCAtNDYyLDMgKzQ2Miw0NyBAQCBpbnQgZHJtX3BsYW5lX2Ny ZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXJldHVybiAw OwogfQogRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3BlcnRpZXMpOwor CisvKioKKyAqIGRybV9jb2xvcl9sdXRfY2hlY2sgLSBjaGVjayB2YWxpZGl0eSBvZiBsb29rdXAg dGFibGUKKyAqIEBsdXQ6IHByb3BlcnR5IGJsb2IgY29udGFpbmluZyBMVVQgdG8gY2hlY2sKKyAq IEB0ZXN0czogYml0bWFzayBvZiB0ZXN0cyB0byBydW4KKyAqCisgKiBIZWxwZXIgdG8gY2hlY2sg d2hldGhlciBhIHVzZXJzcGFjZS1wcm92aWRlZCBsb29rdXAgdGFibGUgaXMgdmFsaWQgYW5kCisg KiBzYXRpc2ZpZXMgaGFyZHdhcmUgcmVxdWlyZW1lbnRzLiAgRHJpdmVycyBwYXNzIGEgYml0bWFz ayBpbmRpY2F0aW5nIHdoaWNoIG9mCisgKiB0aGUgdGVzdHMgaW4gJmRybV9jb2xvcl9sdXRfdGVz dHMgc2hvdWxkIGJlIHBlcmZvcm1lZC4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLUVJ TlZBTCBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2NvbG9yX2x1dF9jaGVjayhzdHJ1Y3QgZHJt X3Byb3BlcnR5X2Jsb2IgKmx1dCwKKwkJCXVpbnQzMl90IHRlc3RzKQoreworCXN0cnVjdCBkcm1f Y29sb3JfbHV0ICplbnRyeTsKKwlpbnQgaTsKKworCWlmICghbHV0IHx8ICF0ZXN0cykKKwkJcmV0 dXJuIDA7CisKKwllbnRyeSA9IGx1dC0+ZGF0YTsKKwlmb3IgKGkgPSAwOyBpIDwgZHJtX2NvbG9y X2x1dF9zaXplKGx1dCk7IGkrKykgeworCQlpZiAodGVzdHMgJiBEUk1fQ09MT1JfTFVUX0VRVUFM X0NIQU5ORUxTKSB7CisJCQlpZiAoZW50cnlbaV0ucmVkICE9IGVudHJ5W2ldLmJsdWUgfHwKKwkJ CSAgICBlbnRyeVtpXS5yZWQgIT0gZW50cnlbaV0uZ3JlZW4pIHsKKwkJCQlEUk1fREVCVUdfS01T KCJBbGwgTFVUIGVudHJpZXMgbXVzdCBoYXZlIGVxdWFsIHIvZy9iXG4iKTsKKwkJCQlyZXR1cm4g LUVJTlZBTDsKKwkJCX0KKwkJfQorCisJCWlmIChpID4gMCAmJiB0ZXN0cyAmIERSTV9DT0xPUl9M VVRfTk9OX0RFQ1JFQVNJTkcpIHsKKwkJCWlmIChlbnRyeVtpXS5yZWQgPCBlbnRyeVtpIC0gMV0u cmVkIHx8CisJCQkgICAgZW50cnlbaV0uZ3JlZW4gPCBlbnRyeVtpIC0gMV0uZ3JlZW4gfHwKKwkJ CSAgICBlbnRyeVtpXS5ibHVlIDwgZW50cnlbaSAtIDFdLmJsdWUpIHsKKwkJCQlEUk1fREVCVUdf S01TKCJMVVQgZW50cmllcyBtdXN0IG5ldmVyIGRlY3JlYXNlLlxuIik7CisJCQkJcmV0dXJuIC1F SU5WQUw7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJt X2NvbG9yX2x1dF9jaGVjayk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29sb3JfbWdt dC5oIGIvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAppbmRleCA5MGVmOTk5NmQ5YTQuLjZh ZmZiZGE2ZDljYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAorKysg Yi9pbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oCkBAIC02OSw0ICs2OSwzMyBAQCBpbnQgZHJt X3BsYW5lX2NyZWF0ZV9jb2xvcl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAog CQkJCSAgICAgIHUzMiBzdXBwb3J0ZWRfcmFuZ2VzLAogCQkJCSAgICAgIGVudW0gZHJtX2NvbG9y X2VuY29kaW5nIGRlZmF1bHRfZW5jb2RpbmcsCiAJCQkJICAgICAgZW51bSBkcm1fY29sb3JfcmFu Z2UgZGVmYXVsdF9yYW5nZSk7CisKKy8qKgorICogZW51bSBkcm1fY29sb3JfbHV0X3Rlc3RzIC0g aHctc3BlY2lmaWMgTFVUIHRlc3RzIHRvIHBlcmZvcm0KKyAqCisgKiBUaGUgZHJtX2NvbG9yX2x1 dF9jaGVjaygpIGZ1bmN0aW9uIHRha2VzIGEgYml0bWFzayBvZiB0aGUgdmFsdWVzIGhlcmUgdG8K KyAqIGRldGVybWluZSB3aGljaCB0ZXN0cyB0byBhcHBseSB0byBhIHVzZXJzcGFjZS1wcm92aWRl ZCBMVVQuCisgKi8KK2VudW0gZHJtX2NvbG9yX2x1dF90ZXN0cyB7CisJLyoqCisJICogQERSTV9D T0xPUl9MVVRfRVFVQUxfQ0hBTk5FTFM6CisJICoKKwkgKiBDaGVja3Mgd2hldGhlciB0aGUgZW50 cmllcyBvZiBhIExVVCBhbGwgaGF2ZSBlcXVhbCB2YWx1ZXMgZm9yIHRoZQorCSAqIHJlZCwgZ3Jl ZW4sIGFuZCBibHVlIGNoYW5uZWxzLiAgSW50ZW5kZWQgZm9yIGhhcmR3YXJlIHRoYXQgb25seQor CSAqIGFjY2VwdHMgYSBzaW5nbGUgdmFsdWUgcGVyIExVVCBlbnRyeSBhbmQgYXNzdW1lcyB0aGF0 IHZhbHVlIGFwcGxpZXMKKwkgKiB0byBhbGwgdGhyZWUgY29sb3IgY29tcG9uZW50cy4KKwkgKi8K KwlEUk1fQ09MT1JfTFVUX0VRVUFMX0NIQU5ORUxTID0gQklUKDApLAorCisJLyoqCisJICogQERS TV9DT0xPUl9MVVRfTk9OX0RFQ1JFQVNJTkc6CisJICoKKwkgKiBDaGVja3Mgd2hldGhlciB0aGUg ZW50cmllcyBvZiBhIExVVCBhcmUgYWx3YXlzIGZsYXQgb3IgaW5jcmVhc2luZworCSAqIChuZXZl ciBkZWNyZWFzaW5nKS4KKwkgKi8KKwlEUk1fQ09MT1JfTFVUX05PTl9ERUNSRUFTSU5HID0gQklU KDEpLAorfTsKKworaW50IGRybV9jb2xvcl9sdXRfY2hlY2soc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpsdXQsCisJCQl1aW50MzJfdCB0ZXN0cyk7CiAjZW5kaWYKLS0gCjIuMTQuNAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==