From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Longerbeam Subject: [PATCH 55/72] imx-drm: Implement DRM gamma set Date: Fri, 31 Oct 2014 15:54:38 -0700 Message-ID: <1414796095-10107-56-git-send-email-steve_longerbeam@mentor.com> References: <1414796095-10107-1-git-send-email-steve_longerbeam@mentor.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pd0-f182.google.com (mail-pd0-f182.google.com [209.85.192.182]) by gabe.freedesktop.org (Postfix) with ESMTP id E5F3B6E849 for ; Fri, 31 Oct 2014 15:57:33 -0700 (PDT) Received: by mail-pd0-f182.google.com with SMTP id fp1so8142914pdb.27 for ; Fri, 31 Oct 2014 15:57:33 -0700 (PDT) In-Reply-To: <1414796095-10107-1-git-send-email-steve_longerbeam@mentor.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 List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50IHRoZSBEUk0gZ2FtbWEgc2V0IEFQSS4gVGhpcyBBUEkgZXhwZWN0cyB0aGF0IHRo ZSBhZGFwdGVyCndpbGwgdXNlIGEgZ2FtbWEtY29ycmVjdGVkIENMVVQsIGJ1dCB0aGUgQ0xVVCBv biBpLk1YNiBpcyBpbnN1ZmZpY2llbnQKZm9yIHRoYXQgcHVycG9zZS4KCkJ1dCB0aGUgaS5NWDYg ZG9lcyBzdXBwb3J0IGdhbW1hIGNvcnJlY3Rpb24gdmlhIGEgc2V0IG9mIHJlZ2lzdGVycwp0aGF0 IGRlZmluZSBhIHBpZWNld2lzZSBsaW5lYXIgYXBwcm94aW1hdGlvbiB0byBhIGx1bWluYW5jZQpn YW1tYSBjb3JyZWN0aW9uIGN1cnZlLCB3aGljaCBpcyB3aGF0IHRoaXMgaW1wbGVtZW50YXRpb24g dXNlcy4KClRoZSBpbnB1dCBnYW1tYS1jb3JyZWN0ZWQgbHVtaW5hbmNlIHZhbHVlcyB0byBpcHVf ZHJtX2dhbW1hX3NldCgpIG11c3QKYmUgaW4gYSBzcGVjaWZpYyBmb3JtYXQgZGVmaW5lZCBpbiB0 aGUgaS5NWDYgcmVmZXJlbmNlIG1hbnVhbC4KClNpZ25lZC1vZmYtYnk6IFN0ZXZlIExvbmdlcmJl YW0gPHN0ZXZlX2xvbmdlcmJlYW1AbWVudG9yLmNvbT4KLS0tCiBkcml2ZXJzL3N0YWdpbmcvaW14 LWRybS9pbXgtZHJtLWNvcmUuYyB8ICAgIDMgKy0KIGRyaXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lt eC1kcm0uaCAgICAgIHwgICAgMiArCiBkcml2ZXJzL3N0YWdpbmcvaW14LWRybS9pcHV2My1jcnRj LmMgICB8ICAgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvc3Rh Z2luZy9pbXgtZHJtL2lwdXYzLXBsYW5lLmMgIHwgICAxMCArKysrCiBkcml2ZXJzL3N0YWdpbmcv aW14LWRybS9pcHV2My1wbGFuZS5oICB8ICAgIDMgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTAyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv aW14LWRybS9pbXgtZHJtLWNvcmUuYyBiL2RyaXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lteC1kcm0t Y29yZS5jCmluZGV4IGUwMTc4ZDYuLjA4NGVkNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9pbXgtZHJtL2lteC1kcm0tY29yZS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lt eC1kcm0tY29yZS5jCkBAIC0zODcsNyArMzg3LDggQEAgaW50IGlteF9kcm1fYWRkX2NydGMoc3Ry dWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJKm5ld19jcnRj ID0gaW14X2RybV9jcnRjOwogCi0JcmV0ID0gZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6ZShp bXhfZHJtX2NydGMtPmNydGMsIDI1Nik7CisJcmV0ID0gZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFf c2l6ZShpbXhfZHJtX2NydGMtPmNydGMsCisJCQkJCSAgIERSTV9JTVhfR0FNTUFfU0laRSk7CiAJ aWYgKHJldCkKIAkJZ290byBlcnJfcmVnaXN0ZXI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy9pbXgtZHJtL2lteC1kcm0uaCBiL2RyaXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lteC1kcm0u aAppbmRleCBlYzA4NGZlLi5iZjZiMDZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvaW14 LWRybS9pbXgtZHJtLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL2lteC1kcm0vaW14LWRybS5oCkBA IC01Miw0ICs1Miw2IEBAIGludCBpbXhfZHJtX2VuY29kZXJfcGFyc2Vfb2Yoc3RydWN0IGRybV9k ZXZpY2UgKmRybSwKIHZvaWQgaW14X2RybV9jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKTsKIHZvaWQgaW14X2RybV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKTsKIAorI2RlZmluZSBEUk1fSU1YX0dBTU1BX1NJWkUgMTYK KwogI2VuZGlmIC8qIF9JTVhfRFJNX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv aW14LWRybS9pcHV2My1jcnRjLmMgYi9kcml2ZXJzL3N0YWdpbmcvaW14LWRybS9pcHV2My1jcnRj LmMKaW5kZXggMzA0MGY4ZS4uNGYyYmE0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2lt eC1kcm0vaXB1djMtY3J0Yy5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lwdXYzLWNy dGMuYwpAQCAtMTcxLDEwICsxNzEsOTUgQEAgc3RhdGljIGludCBpcHVfY3J0Y19wYWdlX2ZsaXAo c3RydWN0IGRybV9jcnRjICpjcnRjLAogCXJldHVybiBpcHVfcGxhbmVfcGFnZV9mbGlwKGNydGMt PnByaW1hcnksIGZiLCBldmVudCwgcGFnZV9mbGlwX2ZsYWdzKTsKIH0KIAorLyoKKyAqIE5vcm1h bGx5IHRoZSBEUk0gR2FtbWEgQVBJIGlzIHVzZWQgdG8gcHJvZ3JhbSBhIGNvbG9yIExVVCB0aGF0 IGNvbnRhaW5zCisgKiBnYW1tYS1jb3JyZWN0ZWQgcGl4ZWwgdmFsdWVzIGZvciByZWQsIGdyZWVu LCBhbmQgYmx1ZSBpbnB1dCBwaXhlbCB2YWx1ZXMKKyAqIChub3JtYWxseSBpbiB0aGUgcmFuZ2Ug MCB0byAyNTUpLgorICoKKyAqIEhvd2V2ZXIgdGhlIGkuTVg2IExVVCBpcyBvbmx5IDI1NiBlbnRy aWVzLCBzbyBpdCBvbmx5IHN1cHBvcnRzIDggYnBwCisgKiBpbmRleGVkIHBpeGVsIGZvcm1hdC4g VGhlcmVmb3JlIGlmIHRoZSBpLk1YNiBMVVQgd2VyZSB1c2VkIHRvIGltcGxlbWVudAorICogZ2Ft bWEgY29ycmVjdGlvbiwgdGggRFJNIGZyYW1lYnVmZmVyIHdvdWxkIGhhdmUgdG8gdXNlIDggYnBw IGluZGV4ZWQgcGl4ZWwKKyAqIGZvcm1hdCB3aGljaCBpcyBpbnN1ZmZpY2llbnQgZm9yIG1vc3Qg dXNlIGNhc2VzLiBUbyBzdXBwb3J0IGEgZ2FtbWEKKyAqIGNvcnJlY3RpbmcgTFVUIHdpdGggZnVs bCBSR0IyNCBvciBZVVY0NDQgcGl4ZWwgZm9ybWF0cywgdGhlcmUgd291bGQgaGF2ZQorICogdG8g YmUgMyBzZXBhcmF0ZSAyNTYtZW50cnkgTFVUcyBmb3IgZWFjaCBjb2xvciBjb21wb25lbnQuCisg KgorICogQnV0IHRoZSBpLk1YNiBkb2VzIHN1cHBvcnQgZ2FtbWEgY29ycmVjdGlvbiB2aWEgYSBz ZXQgb2YgcmVnaXN0ZXJzIHRoYXQKKyAqIGRlZmluZSBhIHBpZWNld2lzZSBsaW5lYXIgYXBwcm94 aW1hdGlvbiB0byBhIGx1bWluYW5jZSBnYW1tYSBjb3JyZWN0aW9uCisgKiBjdXJ2ZS4gVGhpcyBm dW5jdGlvbiB1c2VzIHRoaXMgYXBwcm9hY2guCisgKgorICogVGhlIGlucHV0IHBpeGVsIHZhbHVl cyB0byB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgaW4gYSBzcGVjaWZpYyBmb3JtYXQKKyAqIGFjY29y ZGluZyB0byB0aGUgaS5NWDYgcmVmZXJlbmNlIG1hbnVhbCAoc2VlIFRhYmxlIDM3LTI4IGluIHRo ZQorICogUmV2LiAxIFRSTSwgZGF0ZWQgMDQvMjAxMykuIFRoaXMgaW5mbyBpcyByZXByaW50ZWQg aGVyZToKKyAqCisgKiAiVGhlIHJlcXVpcmVkIEdhbW1hIGNvcnJlY3Rpb24gc2xvcGUgZm9yIGEg c3BlY2lmaWMgZGlzcGxheSBzaG91bGQgYmUKKyAqIHByb3ZpZGVkIGJ5IHRoZSBkaXNwbGF5IG1h bnVmYWN0dXJlLiBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSBwcm92aWRlZAorICogaW4gdmFyaW91 cyBmb3JtcywgYXMgZ3JhcGggb3IgZm9ybXVsYS4gVGhlIGdhbW1hIGNvcnJlY3Rpb24gaW5wdXQg cGl4ZWwKKyAqIGxldmVsIChHaW4pIHNob3VsZCBiZSBub3JtYWxpemVkIHRvIGEgbWF4aW11bSBv ZiAzODMuIFRoZSBnYW1tYSBjb3JyZWN0aW9uCisgKiBvdXRwdXQgcGl4ZWwgbGV2ZWwgKEdvdXQp IHNob3VsZCBiZSBub3JtYWxpemVkIHRvIGEgbWF4aW11bSBvZiAyNTUuIFRoZW4KKyAqIHRoZSBm b2xsb3dpbmcgZGF0YSBzaG91bGQgYmUgY29sbGVjdGVkOgorICoKKyAqIFRhYmxlIDM3LTI4LiBH YW1tYSBjb3JyZWN0aW9uIHZhbHVlcworICogICBHaW4gICBHb3V0CisgKiAgIC0tLSAgIC0tLS0t CisgKiAgICAgMCAgIEdvdXQwCisgKiAgICAgMiAgIEdvdXQxCisgKiAgICAgNCAgIEdvdXQyCisg KiAgICAgOCAgIEdvdXQzCisgKiAgICAxNiAgIEdvdXQ0CisgKiAgICAzMiAgIEdvdXQ1CisgKiAg ICA2NCAgIEdvdXQ2CisgKiAgICA5NiAgIEdvdXQ3CisgKiAgIDEyOCAgIEdvdXQ4CisgKiAgIDE2 MCAgIEdvdXQ5CisgKiAgIDE5MiAgIEdvdXQxMAorICogICAyMjQgICBHb3V0MTEKKyAqICAgMjU2 ICAgR291dDEyCisgKiAgIDI4OCAgIEdvdXQxMworICogICAzMjAgICBHb3V0MTQKKyAqICAgMzUy ICAgR291dDE1IgorICoKKyAqCisgKiBUaGUgMTYgR291dCB2YWx1ZXMgbXVzdCBiZSBwbGFjZWQg aW4gdGhlIGlucHV0IGx1bVtdIGFycmF5LiBUaGUgZ3JlZW4KKyAqIGFuZCBibHVlIGlucHV0IGFy cmF5cyBhcmUgaWdub3JlZC4KKyAqCisgKiBUaGUgZ2FtbWEgcmVnaXN0ZXIgdmFsdWVzIGFyZSB0 aGVuIGNvbXB1dGVkIGFjY29yZGluZyB0byBUYWJsZSAzNy0yOQorICogaW4gdGhlIFJldi4gMSBU Uk0uCisgKi8KK3N0YXRpYyB2b2lkIGlwdV9jcnRjX2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCisJCQkgICAgICAgdTE2ICpsdW0sIHUxNiAqZ191bnVzZWQsIHUxNiAqYl91bnVzZWQs CisJCQkgICAgICAgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90IHNpemUpCit7CisJc3RydWN0IGlw dV9jcnRjICppcHVfY3J0YyA9IHRvX2lwdV9jcnRjKGNydGMpOworCXUzMiBtW0RSTV9JTVhfR0FN TUFfU0laRV0sIGJbRFJNX0lNWF9HQU1NQV9TSVpFXTsKKwlpbnQgaTsKKworCWlmIChzaXplICE9 IERSTV9JTVhfR0FNTUFfU0laRSkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IHNpemU7 IGkrKykgeworCQlpZiAoaSA9PSAwKSB7CisJCQliWzBdID0gbHVtWzBdOworCQkJbVswXSA9IDE2 ICogKGx1bVsxXSAtIGx1bVswXSk7CisJCX0gZWxzZSBpZiAoaSA9PSAxNSkgeworCQkJYlsxNV0g PSBsdW1bMTVdOworCQkJbVsxNV0gPSAyNTUgLSBsdW1bMTVdOworCQl9IGVsc2UgaWYgKGkgPCA1 KSB7CisJCQliW2ldID0gMiAqIGx1bVtpXSAtIGx1bVtpKzFdOworCQkJbVtpXSA9IChsdW1baSsx XSAtIGx1bVtpXSkgPDwgKDUgLSBpKTsKKwkJfSBlbHNlIHsKKwkJCWJbaV0gPSBsdW1baV07CisJ CQltW2ldID0gbHVtW2krMV0gLSBsdW1baV07CisJCX0KKwl9CisKKwlpcHVfcGxhbmVfZ2FtbWFf c2V0KCZpcHVfY3J0Yy0+cGxhbmVbMF0sIHRydWUsIG0sIGIpOworfQorCiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9jcnRjX2Z1bmNzIGlwdV9jcnRjX2Z1bmNzID0gewogCS5zZXRfY29uZmlnID0g ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcsCiAJLmRlc3Ryb3kgPSBkcm1fY3J0Y19jbGVhbnVw LAogCS5wYWdlX2ZsaXAgPSBpcHVfY3J0Y19wYWdlX2ZsaXAsCisJLmdhbW1hX3NldCA9IGlwdV9j cnRjX2dhbW1hX3NldCwKIH07CiAKIHN0YXRpYyBpbnQgaXB1X2NydGNfbW9kZV9zZXQoc3RydWN0 IGRybV9jcnRjICpjcnRjLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lteC1kcm0vaXB1 djMtcGxhbmUuYyBiL2RyaXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lwdXYzLXBsYW5lLmMKaW5kZXgg MzI5M2U4NC4uMjkxMmFhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2lteC1kcm0vaXB1 djMtcGxhbmUuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvaW14LWRybS9pcHV2My1wbGFuZS5jCkBA IC0zODAsNiArMzgwLDE2IEBAIHZvaWQgaXB1X3BsYW5lX2Rpc2FibGUoc3RydWN0IGlwdV9wbGFu ZSAqaXB1X3BsYW5lKQogCQlpcHVfZHBfZGlzYWJsZShpcHVfcGxhbmUtPmRwKTsKIH0KIAoraW50 IGlwdV9wbGFuZV9nYW1tYV9zZXQoc3RydWN0IGlwdV9wbGFuZSAqaXB1X3BsYW5lLAorCQkJYm9v bCBlbmFibGUsIHUzMiAqbSwgdTMyICpiKQoreworCWlmICghaXB1X3BsYW5lLT5kcCkKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gaXB1X2RwX3NldF9nYW1tYV9jb3JyZWN0aW9uKGlwdV9w bGFuZS0+ZHAsIGVuYWJsZSwgbSwgYik7Cit9CisKKwogLyoKICAqIGRybV9wbGFuZSBBUEkKICAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lteC1kcm0vaXB1djMtcGxhbmUuaCBiL2Ry aXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lwdXYzLXBsYW5lLmgKaW5kZXggNGQ4NTZlOS4uOTEyOTAy YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2lteC1kcm0vaXB1djMtcGxhbmUuaAorKysg Yi9kcml2ZXJzL3N0YWdpbmcvaW14LWRybS9pcHV2My1wbGFuZS5oCkBAIC03MCw0ICs3MCw3IEBA IHZvaWQgaXB1X3BsYW5lX2Rpc2FibGUoc3RydWN0IGlwdV9wbGFuZSAqcGxhbmUpOwogaW50IGlw dV9wbGFuZV9nZXRfcmVzb3VyY2VzKHN0cnVjdCBpcHVfcGxhbmUgKnBsYW5lKTsKIHZvaWQgaXB1 X3BsYW5lX3B1dF9yZXNvdXJjZXMoc3RydWN0IGlwdV9wbGFuZSAqcGxhbmUpOwogCitpbnQgaXB1 X3BsYW5lX2dhbW1hX3NldChzdHJ1Y3QgaXB1X3BsYW5lICppcHVfcGxhbmUsCisJCQlib29sIGVu YWJsZSwgdTMyICptLCB1MzIgKmIpOworCiAjZW5kaWYKLS0gCjEuNy45LjUKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==