From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/3] drm/vc4: Add color transformation matrix (CTM) support Date: Mon, 19 Mar 2018 16:09:24 +0200 Message-ID: <20180319140924.GL5453@intel.com> References: <1521237059-37117-1-git-send-email-stschake@gmail.com> <1521237059-37117-3-git-send-email-stschake@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1A82789BCD for ; Mon, 19 Mar 2018 14:09:32 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1521237059-37117-3-git-send-email-stschake@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Stefan Schake Cc: airlied@linux.ie, linux-rpi-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXIgMTYsIDIwMTggYXQgMTA6NTA6NThQTSArMDEwMCwgU3RlZmFuIFNjaGFrZSB3 cm90ZToKPiBUaGUgaGFyZHdhcmUgc3VwcG9ydHMgYSBDVE0gd2l0aCBTMC45IHZhbHVlcy4gV2Ug dGhlcmVmb3JlIG9ubHkgYWxsb3cKPiBhIHZhbHVlIG9mIDEuMCBvciBmcmFjdGlvbmFsIG9ubHkg YW5kIHJlamVjdCBhbGwgb3RoZXJzIHdpdGggaW50ZWdlcgo+IHBhcnRzLiBUaGlzIHJlc3RyaWN0 aW9uIGlzIG1vc3RseSBpbmNvbnNlcXVlbnRpYWwgaW4gcHJhY3RpY2Ugc2luY2UKPiBjb21tb25s eSB1c2VkIHRyYW5zZm9ybWF0aW9uIG1hdHJpY2VzIGhhdmUgYWxsIHNjYWxhcnMgPD0gMS4wLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBTY2hha2UgPHN0c2NoYWtlQGdtYWlsLmNvbT4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jIHwgOTkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA5NiBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmM0L3ZjNF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMKPiBpbmRleCA4 ZDcxMDk4Li41YzgzZmQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Ny dGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYwo+IEBAIC0zMTUsNiAr MzE1LDgxIEBAIHZjNF9jcnRjX3VwZGF0ZV9nYW1tYV9sdXQoc3RydWN0IGRybV9jcnRjICpjcnRj KQo+ICAJdmM0X2NydGNfbHV0X2xvYWQoY3J0Yyk7Cj4gIH0KPiAgCj4gKy8qIENvbnZlcnRzIGEg RFJNIFMzMS4zMiB2YWx1ZSB0byB0aGUgSFcgUzAuOSBmb3JtYXQuICovCj4gK3N0YXRpYyB1MTYg dmM0X2NydGNfczMxXzMyX3RvX3MwXzkodTY0IGluKQo+ICt7Cj4gKwl1MTYgcjsKPiArCj4gKwkv KiBTaWduIGJpdC4gKi8KPiArCXIgPSBpbiAmIEJJVF9VTEwoNjMpID8gQklUKDkpIDogMDsKPiAr CS8qIFdlIGhhdmUgemVybyBpbnRlZ2VyIGJpdHMgc28gd2UgY2FuIG9ubHkgc2F0dXJhdGUgaGVy ZS4gKi8KPiArCWlmICgoaW4gJiBHRU5NQVNLX1VMTCg2MiwgMzIpKSA+IDApCj4gKwkJciB8PSBH RU5NQVNLKDgsIDApOwo+ICsJLyogT3RoZXJ3aXNlIHRha2UgdGhlIDkgbW9zdCBpbXBvcnRhbnQg ZnJhY3Rpb25hbCBiaXRzLiAqLwo+ICsJZWxzZQo+ICsJCXIgfD0gKGluID4+IDIyKSAmIEdFTk1B U0soOCwgMCk7Cj4gKwlyZXR1cm4gcjsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQKPiArdmM0X2Ny dGNfdXBkYXRlX2N0bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0 X2RldihkZXYpOwo+ICsJc3RydWN0IHZjNF9jcnRjICp2YzRfY3J0YyA9IHRvX3ZjNF9jcnRjKGNy dGMpOwo+ICsJc3RydWN0IGRybV9jb2xvcl9jdG0gKmN0bSA9IGNydGMtPnN0YXRlLT5jdG0tPmRh dGE7Cj4gKwo+ICsJSFZTX1dSSVRFKFNDQUxFUl9PTEVEQ09FRjIsCj4gKwkJICBWQzRfU0VUX0ZJ RUxEKHZjNF9jcnRjX3MzMV8zMl90b19zMF85KGN0bS0+bWF0cml4WzBdKSwKPiArCQkJCVNDQUxF Ul9PTEVEQ09FRjJfUl9UT19SKSB8Cj4gKwkJICBWQzRfU0VUX0ZJRUxEKHZjNF9jcnRjX3MzMV8z Ml90b19zMF85KGN0bS0+bWF0cml4WzNdKSwKPiArCQkJCVNDQUxFUl9PTEVEQ09FRjJfUl9UT19H KSB8Cj4gKwkJICBWQzRfU0VUX0ZJRUxEKHZjNF9jcnRjX3MzMV8zMl90b19zMF85KGN0bS0+bWF0 cml4WzZdKSwKPiArCQkJCVNDQUxFUl9PTEVEQ09FRjJfUl9UT19CKSk7Cj4gKwlIVlNfV1JJVEUo U0NBTEVSX09MRURDT0VGMSwKPiArCQkgIFZDNF9TRVRfRklFTEQodmM0X2NydGNfczMxXzMyX3Rv X3MwXzkoY3RtLT5tYXRyaXhbMV0pLAo+ICsJCQkJU0NBTEVSX09MRURDT0VGMV9HX1RPX1IpIHwK PiArCQkgIFZDNF9TRVRfRklFTEQodmM0X2NydGNfczMxXzMyX3RvX3MwXzkoY3RtLT5tYXRyaXhb NF0pLAo+ICsJCQkJU0NBTEVSX09MRURDT0VGMV9HX1RPX0cpIHwKPiArCQkgIFZDNF9TRVRfRklF TEQodmM0X2NydGNfczMxXzMyX3RvX3MwXzkoY3RtLT5tYXRyaXhbN10pLAo+ICsJCQkJU0NBTEVS X09MRURDT0VGMV9HX1RPX0IpKTsKPiArCUhWU19XUklURShTQ0FMRVJfT0xFRENPRUYwLAo+ICsJ CSAgVkM0X1NFVF9GSUVMRCh2YzRfY3J0Y19zMzFfMzJfdG9fczBfOShjdG0tPm1hdHJpeFsyXSks Cj4gKwkJCQlTQ0FMRVJfT0xFRENPRUYwX0JfVE9fUikgfAo+ICsJCSAgVkM0X1NFVF9GSUVMRCh2 YzRfY3J0Y19zMzFfMzJfdG9fczBfOShjdG0tPm1hdHJpeFs1XSksCj4gKwkJCQlTQ0FMRVJfT0xF RENPRUYwX0JfVE9fRykgfAo+ICsJCSAgVkM0X1NFVF9GSUVMRCh2YzRfY3J0Y19zMzFfMzJfdG9f czBfOShjdG0tPm1hdHJpeFs4XSksCj4gKwkJCQlTQ0FMRVJfT0xFRENPRUYwX0JfVE9fQikpOwo+ ICsKPiArCS8qIENoYW5uZWwgaXMgMC1iYXNlZCBidXQgZm9yIERJU1BGSUZPLCAwIG1lYW5zIGRp c2FibGVkLiAqLwo+ICsJSFZTX1dSSVRFKFNDQUxFUl9PTEVET0ZGUywgVkM0X1NFVF9GSUVMRCh2 YzRfY3J0Yy0+Y2hhbm5lbCArIDEsCj4gKwkJCQkJCSBTQ0FMRVJfT0xFRE9GRlNfRElTUEZJRk8p KTsKPiArfQo+ICsKPiArLyogQ2hlY2sgaWYgdGhlIENUTSBjb250YWlucyB2YWxpZCBpbnB1dC4K PiArICoKPiArICogRFJNIGV4cG9zZXMgQ1RNIHdpdGggUzMxLjMyIHNjYWxhcnMsIGJ1dCB0aGUg SFcgb25seSBzdXBwb3J0cyBTMC45Lgo+ICsgKiBXZSBkb24ndCBhbGxvdyBpbnRlZ2VyIHZhbHVl cyA+MSwgYW5kIDEgb25seSB3aXRob3V0IGZyYWN0aW9uYWwgcGFydAo+ICsgKiB0byBoYW5kbGUg dGhlIGNvbW1vbiAxLjAgdmFsdWUuCj4gKyAqLwo+ICtzdGF0aWMgaW50IHZjNF9jcnRjX2F0b21p Y19jaGVja19jdG0oc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0 IGRybV9jb2xvcl9jdG0gKmN0bSA9IHN0YXRlLT5jdG0tPmRhdGE7Cj4gKwl1MzIgaTsKPiArCj4g Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdG0tPm1hdHJpeCk7IGkrKykgewo+ICsJCXU2 NCB2YWwgPSBjdG0tPm1hdHJpeFtpXTsKPiArCj4gKwkJdmFsICY9IH5CSVRfVUxMKDYzKTsKPiAr CQlpZiAoKHZhbCA+PiAzMikgPiAxKQo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQlpZiAoKHZh bCA+PiAzMikgPT0gMSAmJiAodmFsICYgR0VOTUFTS19VTEwoMzEsIDApKSAhPSAwKQo+ICsJCQly ZXR1cm4gLUVJTlZBTDsKCid2YWwgPiBCSVRfVUxMKDMyKScgPwoKPiArCX0KPiArCj4gKwlyZXR1 cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIHUzMiB2YzRfZ2V0X2ZpZm9fZnVsbF9sZXZlbCh1MzIg Zm9ybWF0KQo+ICB7Cj4gIAlzdGF0aWMgY29uc3QgdTMyIGZpZm9fbGVuX2J5dGVzID0gNjQ7Cj4g QEAgLTYyMSw2ICs2OTYsMTUgQEAgc3RhdGljIGludCB2YzRfY3J0Y19hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICAJaWYgKGh3ZWlnaHQzMihzdGF0ZS0+Y29ubmVjdG9yX21h c2spID4gMSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gKwlpZiAoc3RhdGUtPmN0bSkgewo+ ICsJCS8qIFRoZSBDVE0gaGFyZHdhcmUgaGFzIG5vIGludGVnZXIgYml0cywgc28gd2UgY2hlY2sK PiArCQkgKiBhbmQgcmVqZWN0IHNjYWxhcnMgPjEuMCB0aGF0IHdlIGhhdmUgbm8gY2hhbmNlIG9m Cj4gKwkJICogYXBwcm94aW1hdGluZy4KPiArCQkgKi8KPiArCQlpZiAodmM0X2NydGNfYXRvbWlj X2NoZWNrX2N0bShzdGF0ZSkpCj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiAgCWRy bV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgcGxhbmVfc3Rh dGUsIHN0YXRlKQo+ICAJCWRsaXN0X2NvdW50ICs9IHZjNF9wbGFuZV9kbGlzdF9zaXplKHBsYW5l X3N0YXRlKTsKPiAgCj4gQEAgLTY5Nyw4ICs3ODEsMTcgQEAgc3RhdGljIHZvaWQgdmM0X2NydGNf YXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWlmIChjcnRjLT5zdGF0ZS0+ YWN0aXZlICYmIG9sZF9zdGF0ZS0+YWN0aXZlKQo+ICAJCXZjNF9jcnRjX3VwZGF0ZV9kbGlzdChj cnRjKTsKPiAgCj4gLQlpZiAoY3J0Yy0+c3RhdGUtPmNvbG9yX21nbXRfY2hhbmdlZCAmJiBjcnRj LT5zdGF0ZS0+Z2FtbWFfbHV0KQo+IC0JCXZjNF9jcnRjX3VwZGF0ZV9nYW1tYV9sdXQoY3J0Yyk7 Cj4gKwlpZiAoY3J0Yy0+c3RhdGUtPmNvbG9yX21nbXRfY2hhbmdlZCkgewo+ICsJCWlmIChjcnRj LT5zdGF0ZS0+Z2FtbWFfbHV0KQo+ICsJCQl2YzRfY3J0Y191cGRhdGVfZ2FtbWFfbHV0KGNydGMp Owo+ICsKPiArCQlpZiAoY3J0Yy0+c3RhdGUtPmN0bSkKPiArCQkJdmM0X2NydGNfdXBkYXRlX2N0 bShjcnRjKTsKPiArCQkvKiBXZSBhcmUgdHJhbnNpdGlvbmluZyB0byBDVE0gZGlzYWJsZWQuICov Cj4gKwkJZWxzZSBpZiAob2xkX3N0YXRlLT5jdG0pCj4gKwkJCUhWU19XUklURShTQ0FMRVJfT0xF RE9GRlMsCj4gKwkJCQkgIFZDNF9TRVRfRklFTEQoMCwgU0NBTEVSX09MRURPRkZTX0RJU1BGSUZP KSk7Cj4gKwl9Cj4gIAo+ICAJaWYgKGRlYnVnX2R1bXBfcmVncykgewo+ICAJCURSTV9JTkZPKCJD UlRDICVkIEhWUyBhZnRlcjpcbiIsIGRybV9jcnRjX2luZGV4KGNydGMpKTsKPiBAQCAtMTAzNiw3 ICsxMTI5LDcgQEAgc3RhdGljIGludCB2YzRfY3J0Y19iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAJcHJpbWFyeV9wbGFuZS0+Y3J0 YyA9IGNydGM7Cj4gIAl2YzRfY3J0Yy0+Y2hhbm5lbCA9IHZjNF9jcnRjLT5kYXRhLT5odnNfY2hh bm5lbDsKPiAgCWRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3NpemUoY3J0YywgQVJSQVlfU0laRSh2 YzRfY3J0Yy0+bHV0X3IpKTsKPiAtCWRybV9jcnRjX2VuYWJsZV9jb2xvcl9tZ210KGNydGMsIDAs IGZhbHNlLCBjcnRjLT5nYW1tYV9zaXplKTsKPiArCWRybV9jcnRjX2VuYWJsZV9jb2xvcl9tZ210 KGNydGMsIDAsIHRydWUsIGNydGMtPmdhbW1hX3NpemUpOwo+ICAKPiAgCS8qIFNldCB1cCBzb21l IGFyYml0cmFyeSBudW1iZXIgb2YgcGxhbmVzLiAgV2UncmUgbm90IGxpbWl0ZWQKPiAgCSAqIGJ5 IGEgc2V0IG51bWJlciBvZiBwaHlzaWNhbCByZWdpc3RlcnMsIGp1c3QgdGhlIHNwYWNlIGluCj4g LS0gCj4gMi43LjQKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=