From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Longerbeam Subject: [PATCH v7 3/5] gpu: ipu-v3: ipu-ic-csc: Add support for limited range encoding Date: Sat, 6 Apr 2019 16:09:01 -0700 Message-ID: <20190406230903.16488-4-slongerbeam@gmail.com> References: <20190406230903.16488-1-slongerbeam@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) by gabe.freedesktop.org (Postfix) with ESMTPS id CEA02893A2 for ; Sat, 6 Apr 2019 23:09:17 +0000 (UTC) Received: by mail-pl1-x643.google.com with SMTP id n8so497493plp.10 for ; Sat, 06 Apr 2019 16:09:17 -0700 (PDT) In-Reply-To: <20190406230903.16488-1-slongerbeam@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org Cc: open list , "open list:DRM DRIVERS FOR FREESCALE IMX" , Steve Longerbeam List-Id: dri-devel@lists.freedesktop.org QWRkIHN1cHBvcnQgZm9yIGVuY29kaW5ncyB0byBvciBmcm9tIGxpbWl0ZWQgcmFuZ2UgcXVhbnRp emF0aW9uLgoKU2lnbmVkLW9mZi1ieTogU3RldmUgTG9uZ2VyYmVhbSA8c2xvbmdlcmJlYW1AZ21h aWwuY29tPgotLS0KQ2hhbmdlcyBpbiB2NzoKLSBoYXJkLWNvZGUgdGhlIGNvZWZmaWNpZW50cyBp bnN0ZWFkIG9mIGRlcml2aW5nIHRoZSBsaW1pdGVkIHJhbmdlCiAgY29lZmZpY2llbnRzIGZyb20g dGhlIGZ1bGwyZnVsbCBjb2VmZmljaWVudHMgb24gdGhlIGZseSB3aXRoCiAgZml4ZWQtcG9pbnQg bWF0aC4KLSBhZGQgc3VwcG9ydCBmb3IgUkdCIGxpbWl0ZWQtcmFuZ2UuCi0tLQogZHJpdmVycy9n cHUvaXB1LXYzL2lwdS1pYy1jc2MuYyB8IDE4MCArKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDE2NiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWljLWNzYy5jIGIvZHJpdmVycy9n cHUvaXB1LXYzL2lwdS1pYy1jc2MuYwppbmRleCA1ZmI0NjljZDY0ZmUuLjhlOTE1MGIxZDY2OCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvaXB1LXYzL2lwdS1pYy1jc2MuYworKysgYi9kcml2ZXJz L2dwdS9pcHUtdjMvaXB1LWljLWNzYy5jCkBAIC0xMCw2ICsxMCwxMCBAQAogI2luY2x1ZGUgPGxp bnV4L3NpemVzLmg+CiAjaW5jbHVkZSAiaXB1LXBydi5oIgogCisjZGVmaW5lIFFVQU5UX01BUChx KQkJCQkJXAorCSgocSkgPT0gVjRMMl9RVUFOVElaQVRJT05fRlVMTF9SQU5HRSB8fAkJXAorCSAo cSkgPT0gVjRMMl9RVUFOVElaQVRJT05fREVGQVVMVCA/IDAgOiAxKQorCiAvKiBpZGVudGl0eSBt YXRyaXggKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXB1X2ljX2NzY19wYXJhbXMgaWRlbnRpdHkg PSB7CiAJLmNvZWZmID0gewpAQCAtMjEsMTIgKzI1LDg3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aXB1X2ljX2NzY19wYXJhbXMgaWRlbnRpdHkgPSB7CiAJLnNjYWxlID0gMiwKIH07CiAKKy8qCisg KiBSR0IgZnVsbC1yYW5nZSB0byBSR0IgbGltaXRlZC1yYW5nZQorICoKKyAqIFJfbGltID0gMC44 NTg4ICogUl9mdWxsICsgMTYKKyAqIEdfbGltID0gMC44NTg4ICogR19mdWxsICsgMTYKKyAqIEJf bGltID0gMC44NTg4ICogQl9mdWxsICsgMTYKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBpcHVf aWNfY3NjX3BhcmFtcyByZ2JmMnJnYmwgPSB7CisJLmNvZWZmID0geworCQl7ICAyMjAsICAgIDAs ICAgIDAsIH0sCisJCXsgICAgMCwgIDIyMCwgICAgMCwgfSwKKwkJeyAgICAwLCAgICAwLCAgMjIw LCB9LAorCX0sCisJLm9mZnNldCA9IHsgNjQsIDY0LCA2NCwgfSwKKwkuc2NhbGUgPSAxLAorfTsK KworLyoKKyAqIFJHQiBsaW1pdGVkLXJhbmdlIHRvIFJHQiBmdWxsLXJhbmdlCisgKgorICogUl9m dWxsID0gMS4xNjQ0ICogKFJfbGltIC0gMTYpCisgKiBHX2Z1bGwgPSAxLjE2NDQgKiAoR19saW0g LSAxNikKKyAqIEJfZnVsbCA9IDEuMTY0NCAqIChCX2xpbSAtIDE2KQorICovCitzdGF0aWMgY29u c3Qgc3RydWN0IGlwdV9pY19jc2NfcGFyYW1zIHJnYmwycmdiZiA9IHsKKwkuY29lZmYgPSB7CisJ CXsgIDE0OSwgICAgMCwgICAgMCwgfSwKKwkJeyAgICAwLCAgMTQ5LCAgICAwLCB9LAorCQl7ICAg IDAsICAgIDAsICAxNDksIH0sCisJfSwKKwkub2Zmc2V0ID0geyAtMzcsIC0zNywgLTM3LCB9LAor CS5zY2FsZSA9IDIsCit9OworCisvKgorICogWVVWIGZ1bGwtcmFuZ2UgdG8gWVVWIGxpbWl0ZWQt cmFuZ2UKKyAqCisgKiBZX2xpbSAgPSAwLjg1ODggKiBZX2Z1bGwgKyAxNgorICogQ2JfbGltID0g MC44Nzg0ICogKENiX2Z1bGwgLSAxMjgpICsgMTI4CisgKiBDcl9saW0gPSAwLjg3ODQgKiAoQ3Jf ZnVsbCAtIDEyOCkgKyAxMjgKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBpcHVfaWNfY3NjX3Bh cmFtcyB5dXZmMnl1dmwgPSB7CisJLmNvZWZmID0geworCQl7ICAyMjAsICAgIDAsICAgIDAsIH0s CisJCXsgICAgMCwgIDIyNSwgICAgMCwgfSwKKwkJeyAgICAwLCAgICAwLCAgMjI1LCB9LAorCX0s CisJLm9mZnNldCA9IHsgNjQsIDYyLCA2MiwgfSwKKwkuc2NhbGUgPSAxLAorCS5zYXQgPSB0cnVl LAorfTsKKworLyoKKyAqIFlVViBsaW1pdGVkLXJhbmdlIHRvIFlVViBmdWxsLXJhbmdlCisgKgor ICogWV9mdWxsICA9IDEuMTY0NCAqIChZX2xpbSAtIDE2KQorICogQ2JfZnVsbCA9IDEuMTM4NCAq IChDYl9saW0gLSAxMjgpICsgMTI4CisgKiBDcl9mdWxsID0gMS4xMzg0ICogKENyX2xpbSAtIDEy OCkgKyAxMjgKKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBpcHVfaWNfY3NjX3BhcmFtcyB5dXZs Mnl1dmYgPSB7CisJLmNvZWZmID0geworCQl7ICAxNDksICAgIDAsICAgIDAsIH0sCisJCXsgICAg MCwgIDE0NiwgICAgMCwgfSwKKwkJeyAgICAwLCAgICAwLCAgMTQ2LCB9LAorCX0sCisJLm9mZnNl dCA9IHsgLTM3LCAtMzUsIC0zNSwgfSwKKwkuc2NhbGUgPSAyLAorfTsKKwogc3RhdGljIGNvbnN0 IHN0cnVjdCBpcHVfaWNfY3NjX3BhcmFtcyAqcmdiMnJnYltdID0gewogCSZpZGVudGl0eSwKKwkm cmdiZjJyZ2JsLAorCSZyZ2JsMnJnYmYsCisJJmlkZW50aXR5LAogfTsKIAogc3RhdGljIGNvbnN0 IHN0cnVjdCBpcHVfaWNfY3NjX3BhcmFtcyAqeXV2Mnl1dltdID0gewogCSZpZGVudGl0eSwKKwkm eXV2ZjJ5dXZsLAorCSZ5dXZsMnl1dmYsCisJJmlkZW50aXR5LAogfTsKIAogLyoKQEAgLTQ2LDYg KzEyNSw0MSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlwdV9pY19jc2NfcGFyYW1zIHJnYmYyeXV2 Zl82MDEgPSB7CiAJLnNjYWxlID0gMSwKIH07CiAKKy8qIEJULjYwMSBSR0IgZnVsbC1yYW5nZSB0 byBZVVYgbGltaXRlZC1yYW5nZSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBpcHVfaWNfY3NjX3Bh cmFtcyByZ2JmMnl1dmxfNjAxID0geworCS5jb2VmZiA9IHsKKwkJeyAgIDY2LCAgMTI5LCAgIDI1 LCB9LAorCQl7ICAtMzgsICAtNzQsICAxMTIsIH0sCisJCXsgIDExMiwgIC05NCwgIC0xOCwgfSwK Kwl9LAorCS5vZmZzZXQgPSB7IDY0LCA1MTIsIDUxMiwgfSwKKwkuc2NhbGUgPSAxLAorCS5zYXQg PSB0cnVlLAorfTsKKworLyogQlQuNjAxIFJHQiBsaW1pdGVkLXJhbmdlIHRvIFlVViBmdWxsLXJh bmdlICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGlwdV9pY19jc2NfcGFyYW1zIHJnYmwyeXV2Zl82 MDEgPSB7CisJLmNvZWZmID0geworCQl7ICAgODksICAxNzUsICAgMzQsIH0sCisJCXsgIC01MCwg IC05OSwgIDE0OSwgfSwKKwkJeyAgMTQ5LCAtMTI1LCAgLTI0LCB9LAorCX0sCisJLm9mZnNldCA9 IHsgLTc1LCA1MTIsIDUxMiwgfSwKKwkuc2NhbGUgPSAxLAorfTsKKworLyogQlQuNjAxIFJHQiBs aW1pdGVkLXJhbmdlIHRvIFlVViBsaW1pdGVkLXJhbmdlICovCitzdGF0aWMgY29uc3Qgc3RydWN0 IGlwdV9pY19jc2NfcGFyYW1zIHJnYmwyeXV2bF82MDEgPSB7CisJLmNvZWZmID0geworCQl7ICAg NzcsICAxNTAsICAgMjksIH0sCisJCXsgIC00NCwgIC04NywgIDEzMSwgfSwKKwkJeyAgMTMxLCAt MTEwLCAgLTIxLCB9LAorCX0sCisJLm9mZnNldCA9IHsgMCwgNTEyLCA1MTIsIH0sCisJLnNjYWxl ID0gMSwKKwkuc2F0ID0gdHJ1ZSwKK307CisKIC8qCiAgKiBCVC42MDEgWVVWIGZ1bGwtcmFuZ2Ug dG8gUkdCIGZ1bGwtcmFuZ2UKICAqCkBAIC02OSwzOSArMTgzLDc3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaXB1X2ljX2NzY19wYXJhbXMgeXV2ZjJyZ2JmXzYwMSA9IHsKIAkuc2NhbGUgPSAyLAog fTsKIAorLyogQlQuNjAxIFlVViBmdWxsLXJhbmdlIHRvIFJHQiBsaW1pdGVkLXJhbmdlICovCitz dGF0aWMgY29uc3Qgc3RydWN0IGlwdV9pY19jc2NfcGFyYW1zIHl1dmYycmdibF82MDEgPSB7CisJ LmNvZWZmID0geworCQl7ICAxMTAsICAgIDAsICAxNTQsIH0sCisJCXsgIDExMCwgIC0zOCwgIC03 OCwgfSwKKwkJeyAgMTEwLCAgMTk1LCAgICAwLCB9LAorCX0sCisJLm9mZnNldCA9IHsgLTI3Niwg MjY1LCAtMzU4LCB9LAorCS5zY2FsZSA9IDIsCit9OworCisvKiBCVC42MDEgWVVWIGxpbWl0ZWQt cmFuZ2UgdG8gUkdCIGZ1bGwtcmFuZ2UgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXB1X2ljX2Nz Y19wYXJhbXMgeXV2bDJyZ2JmXzYwMSA9IHsKKwkuY29lZmYgPSB7CisJCXsgICA3NSwgICAgMCwg IDEwMiwgfSwKKwkJeyAgIDc1LCAgLTI1LCAgLTUyLCB9LAorCQl7ICAgNzUsICAxMjksICAgIDAs IH0sCisJfSwKKwkub2Zmc2V0ID0geyAtMjIzLCAxMzYsIC0yNzcsIH0sCisJLnNjYWxlID0gMywK K307CisKKy8qIEJULjYwMSBZVVYgbGltaXRlZC1yYW5nZSB0byBSR0IgbGltaXRlZC1yYW5nZSAq Lworc3RhdGljIGNvbnN0IHN0cnVjdCBpcHVfaWNfY3NjX3BhcmFtcyB5dXZsMnJnYmxfNjAxID0g eworCS5jb2VmZiA9IHsKKwkJeyAgMTI4LCAgICAwLCAgMTc1LCB9LAorCQl7ICAxMjgsICAtNDMs ICAtODksIH0sCisJCXsgIDEyOCwgIDIyMiwgICAgMCwgfSwKKwl9LAorCS5vZmZzZXQgPSB7IC0z NTEsIDI2NSwgLTQ0MywgfSwKKwkuc2NhbGUgPSAyLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVj dCBpcHVfaWNfY3NjX3BhcmFtcyAqcmdiMnl1dl82MDFbXSA9IHsKIAkmcmdiZjJ5dXZmXzYwMSwK KwkmcmdiZjJ5dXZsXzYwMSwKKwkmcmdibDJ5dXZmXzYwMSwKKwkmcmdibDJ5dXZsXzYwMSwKIH07 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXB1X2ljX2NzY19wYXJhbXMgKnl1djJyZ2JfNjAxW10g PSB7CiAJJnl1dmYycmdiZl82MDEsCisJJnl1dmYycmdibF82MDEsCisJJnl1dmwycmdiZl82MDEs CisJJnl1dmwycmdibF82MDEsCiB9OwogCiBzdGF0aWMgaW50IGNhbGNfY3NjX2NvZWZmcyhzdHJ1 Y3QgaXB1X2ljX2NzYyAqY3NjKQogeworCWNvbnN0IHN0cnVjdCBpcHVfaWNfY3NjX3BhcmFtcyAq KnBhcmFtc190Ymw7CisJaW50IHRibF9pZHg7CisKIAlpZiAoY3NjLT5vdXRfY3MuZW5jICE9IFY0 TDJfWUNCQ1JfRU5DXzYwMSkKIAkJcmV0dXJuIC1FTk9UU1VQUDsKIAotCWlmICgoY3NjLT5pbl9j cy5jcyA9PSBJUFVWM19DT0xPUlNQQUNFX1lVViAmJgotCSAgICAgY3NjLT5pbl9jcy5xdWFudCAh PSBWNEwyX1FVQU5USVpBVElPTl9GVUxMX1JBTkdFKSB8fAotCSAgICAoY3NjLT5vdXRfY3MuY3Mg PT0gSVBVVjNfQ09MT1JTUEFDRV9ZVVYgJiYKLQkgICAgIGNzYy0+b3V0X2NzLnF1YW50ICE9IFY0 TDJfUVVBTlRJWkFUSU9OX0ZVTExfUkFOR0UpKQotCQlyZXR1cm4gLUVOT1RTVVBQOwotCi0JaWYg KChjc2MtPmluX2NzLmNzID09IElQVVYzX0NPTE9SU1BBQ0VfUkdCICYmCi0JICAgICBjc2MtPmlu X2NzLnF1YW50ICE9IFY0TDJfUVVBTlRJWkFUSU9OX0ZVTExfUkFOR0UpIHx8Ci0JICAgIChjc2Mt Pm91dF9jcy5jcyA9PSBJUFVWM19DT0xPUlNQQUNFX1JHQiAmJgotCSAgICAgY3NjLT5vdXRfY3Mu cXVhbnQgIT0gVjRMMl9RVUFOVElaQVRJT05fRlVMTF9SQU5HRSkpCi0JCXJldHVybiAtRU5PVFNV UFA7CisJdGJsX2lkeCA9IChRVUFOVF9NQVAoY3NjLT5pbl9jcy5xdWFudCkgPDwgMSkgfAorCQlR VUFOVF9NQVAoY3NjLT5vdXRfY3MucXVhbnQpOwogCiAJaWYgKGNzYy0+aW5fY3MuY3MgPT0gY3Nj LT5vdXRfY3MuY3MpIHsKIAkJY3NjLT5wYXJhbXMgPSAoY3NjLT5pbl9jcy5jcyA9PSBJUFVWM19D T0xPUlNQQUNFX1lVVikgPwotCQkJKnl1djJ5dXZbMF0gOiAqcmdiMnJnYlswXTsKKwkJCSp5dXYy eXV2W3RibF9pZHhdIDogKnJnYjJyZ2JbdGJsX2lkeF07CisKIAkJcmV0dXJuIDA7CiAJfQogCi0J Y3NjLT5wYXJhbXMgPSAoY3NjLT5pbl9jcy5jcyA9PSBJUFVWM19DT0xPUlNQQUNFX1lVVikgPwot CQkqeXV2MnJnYl82MDFbMF0gOiAqcmdiMnl1dl82MDFbMF07CisJLyogWVVWIDwtPiBSR0IgZW5j b2RpbmcgaXMgcmVxdWlyZWQgKi8KKworCXBhcmFtc190YmwgPSAoY3NjLT5pbl9jcy5jcyA9PSBJ UFVWM19DT0xPUlNQQUNFX1lVVikgPworCQl5dXYycmdiXzYwMSA6IHJnYjJ5dXZfNjAxOworCisJ Y3NjLT5wYXJhbXMgPSAqcGFyYW1zX3RibFt0YmxfaWR4XTsKIAogCXJldHVybiAwOwogfQotLSAK Mi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=