From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: [PATCH v4 10/22] drm/sun4i: frontend: Add support for planar YUV input formats Date: Wed, 5 Dec 2018 09:36:51 +0100 Message-ID: <20181205083703.21488-11-paul.kocialkowski@bootlin.com> References: <20181205083703.21488-1-paul.kocialkowski@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id D2A3B6E375 for ; Wed, 5 Dec 2018 08:37:52 +0000 (UTC) In-Reply-To: <20181205083703.21488-1-paul.kocialkowski@bootlin.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, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Maxime Ripard , linux-sunxi@googlegroups.com, Paul Kocialkowski , David Airlie , Chen-Yu Tsai , Thomas Petazzoni , Sean Paul List-Id: dri-devel@lists.freedesktop.org UGxhbmFyIFlVViBmb3JtYXRzIGNvbWUgd2l0aCAzIGRpc3RpbmN0IHBsYW5lcywgd2hpY2ggcmVx dWlyZXMKY29uZmlndXJpbmcgdGhlIGZyb250ZW5kIGxpbmUgc3RyaWRlIGFuZCBhZGRyZXNzIHJl Z2lzdGVycyBmb3IgdGhlCnRoaXJkIHBsYW5lLgoKT3VyIGhhcmR3YXJlIG9ubHkgc3VwcG9ydHMg dGhlIFlVViBwbGFuZXMgb3JkZXIgYW5kIGluIG9yZGVyIHRvIHN1cHBvcnQKZm9ybWF0cyB3aXRo IGEgWVZVIHBsYW5lIG9yZGVyLCBhIGhlbHBlciBpcyBpbnRyb2R1Y2VkIHRvIGluZGljYXRlCndo ZXRoZXIgdG8gaW52ZXJ0IHRoZSBhZGRyZXNzIG9mIHRoZSB0d28gY2hyb21hIHBsYW5lcy4KCk1p c3NpbmcgZGVmaW5pdGlvbnMgZm9yIFlVVjQxMSBhbmQgWVVWNDQ0IGlucHV0IGZvcm1hdCBjb25m aWd1cmF0aW9uIGFyZQphbHNvIGludHJvZHVjZWQgYXMgc3VwcG9ydCBpcyBhZGRlZCBmb3IgdGhl c2UgZm9ybWF0cy4gRm9yIHRoZSBpbnB1dApzZXF1ZW5jZSBwYXJ0LCBubyBjb25maWd1cmF0aW9u IGlzIHJlcXVpcmVkIGZvciBwbGFuYXIgWVVWIGZvcm1hdHMgc28KemVybyBpcyByZXR1cm5lZCBp biB0aGF0IGNhc2UuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEtvY2lhbGtvd3NraSA8cGF1bC5rb2Np YWxrb3dza2lAYm9vdGxpbi5jb20+CkFja2VkLWJ5OiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlw YXJkQGJvb3RsaW4uY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9mcm9udGVu ZC5jIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9zdW40 aS9zdW40aV9mcm9udGVuZC5oIHwgIDUgKysrCiBkcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlf bGF5ZXIuYyAgICB8ICA4ICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9m cm9udGVuZC5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Zyb250ZW5kLmMKaW5kZXgg ZjI2MjA2OWQzNDhmLi42MjE5ZjVkMGRjNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9z dW40aS9zdW40aV9mcm9udGVuZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9m cm9udGVuZC5jCkBAIC0xMDcsMTIgKzEwNywyNyBAQCB2b2lkIHN1bjRpX2Zyb250ZW5kX2V4aXQo c3RydWN0IHN1bjRpX2Zyb250ZW5kICpmcm9udGVuZCkKIH0KIEVYUE9SVF9TWU1CT0woc3VuNGlf ZnJvbnRlbmRfZXhpdCk7CiAKK3N0YXRpYyBib29sIHN1bjRpX2Zyb250ZW5kX2Zvcm1hdF9jaHJv bWFfcmVxdWlyZXNfc3dhcCh1aW50MzJfdCBmbXQpCit7CisJc3dpdGNoIChmbXQpIHsKKwljYXNl IERSTV9GT1JNQVRfWVZVNDExOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVlU0MjA6CisJY2FzZSBEUk1f Rk9STUFUX1lWVTQyMjoKKwljYXNlIERSTV9GT1JNQVRfWVZVNDQ0OgorCQlyZXR1cm4gdHJ1ZTsK KworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKIHZvaWQgc3VuNGlfZnJvbnRl bmRfdXBkYXRlX2J1ZmZlcihzdHJ1Y3Qgc3VuNGlfZnJvbnRlbmQgKmZyb250ZW5kLAogCQkJCSAg c3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3Rh dGUgPSBwbGFuZS0+c3RhdGU7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+ ZmI7CiAJZG1hX2FkZHJfdCBwYWRkcjsKKwlib29sIHN3YXA7CiAKIAkvKiBTZXQgdGhlIGxpbmUg d2lkdGggKi8KIAlEUk1fREVCVUdfRFJJVkVSKCJGcm9udGVuZCBzdHJpZGU6ICVkIGJ5dGVzXG4i LCBmYi0+cGl0Y2hlc1swXSk7CkBAIC0xMjMsNiArMTM4LDEzIEBAIHZvaWQgc3VuNGlfZnJvbnRl bmRfdXBkYXRlX2J1ZmZlcihzdHJ1Y3Qgc3VuNGlfZnJvbnRlbmQgKmZyb250ZW5kLAogCQlyZWdt YXBfd3JpdGUoZnJvbnRlbmQtPnJlZ3MsIFNVTjRJX0ZST05URU5EX0xJTkVTVFJEMV9SRUcsCiAJ CQkgICAgIGZiLT5waXRjaGVzWzFdKTsKIAorCWlmIChmYi0+Zm9ybWF0LT5udW1fcGxhbmVzID4g MikKKwkJcmVnbWFwX3dyaXRlKGZyb250ZW5kLT5yZWdzLCBTVU40SV9GUk9OVEVORF9MSU5FU1RS RDJfUkVHLAorCQkJICAgICBmYi0+cGl0Y2hlc1syXSk7CisKKwkvKiBTb21lIHBsYW5hciBmb3Jt YXRzIHJlcXVpcmUgY2hyb21hIGNoYW5uZWwgc3dhcHBpbmcgYnkgaGFuZC4gKi8KKwlzd2FwID0g c3VuNGlfZnJvbnRlbmRfZm9ybWF0X2Nocm9tYV9yZXF1aXJlc19zd2FwKGZiLT5mb3JtYXQtPmZv cm1hdCk7CisKIAkvKiBTZXQgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGJ1ZmZlciBpbiBt ZW1vcnkgKi8KIAlwYWRkciA9IGRybV9mYl9jbWFfZ2V0X2dlbV9hZGRyKGZiLCBzdGF0ZSwgMCk7 CiAJcGFkZHIgLT0gUEhZU19PRkZTRVQ7CkBAIC0xMzAsMTIgKzE1MiwyMCBAQCB2b2lkIHN1bjRp X2Zyb250ZW5kX3VwZGF0ZV9idWZmZXIoc3RydWN0IHN1bjRpX2Zyb250ZW5kICpmcm9udGVuZCwK IAlyZWdtYXBfd3JpdGUoZnJvbnRlbmQtPnJlZ3MsIFNVTjRJX0ZST05URU5EX0JVRl9BRERSMF9S RUcsIHBhZGRyKTsKIAogCWlmIChmYi0+Zm9ybWF0LT5udW1fcGxhbmVzID4gMSkgewotCQlwYWRk ciA9IGRybV9mYl9jbWFfZ2V0X2dlbV9hZGRyKGZiLCBzdGF0ZSwgMSk7CisJCXBhZGRyID0gZHJt X2ZiX2NtYV9nZXRfZ2VtX2FkZHIoZmIsIHN0YXRlLCBzd2FwID8gMiA6IDEpOwogCQlwYWRkciAt PSBQSFlTX09GRlNFVDsKIAkJRFJNX0RFQlVHX0RSSVZFUigiU2V0dGluZyBidWZmZXIgIzEgYWRk cmVzcyB0byAlcGFkXG4iLCAmcGFkZHIpOwogCQlyZWdtYXBfd3JpdGUoZnJvbnRlbmQtPnJlZ3Ms IFNVTjRJX0ZST05URU5EX0JVRl9BRERSMV9SRUcsCiAJCQkgICAgIHBhZGRyKTsKIAl9CisKKwlp ZiAoZmItPmZvcm1hdC0+bnVtX3BsYW5lcyA+IDIpIHsKKwkJcGFkZHIgPSBkcm1fZmJfY21hX2dl dF9nZW1fYWRkcihmYiwgc3RhdGUsIHN3YXAgPyAxIDogMik7CisJCXBhZGRyIC09IFBIWVNfT0ZG U0VUOworCQlEUk1fREVCVUdfRFJJVkVSKCJTZXR0aW5nIGJ1ZmZlciAjMiBhZGRyZXNzIHRvICVw YWRcbiIsICZwYWRkcik7CisJCXJlZ21hcF93cml0ZShmcm9udGVuZC0+cmVncywgU1VONElfRlJP TlRFTkRfQlVGX0FERFIyX1JFRywKKwkJCSAgICAgcGFkZHIpOworCX0KIH0KIEVYUE9SVF9TWU1C T0woc3VuNGlfZnJvbnRlbmRfdXBkYXRlX2J1ZmZlcik7CiAKQEAgLTE0NSwxMCArMTc1LDE0IEBA IHN1bjRpX2Zyb250ZW5kX2RybV9mb3JtYXRfdG9faW5wdXRfZm10KGNvbnN0IHN0cnVjdCBkcm1f Zm9ybWF0X2luZm8gKmZvcm1hdCwKIHsKIAlpZiAoIWZvcm1hdC0+aXNfeXV2KQogCQkqdmFsID0g U1VONElfRlJPTlRFTkRfSU5QVVRfRk1UX0RBVEFfRk1UX1JHQjsKKwllbHNlIGlmIChkcm1fZm9y bWF0X2luZm9faXNfeXV2X3NhbXBsaW5nXzQxMShmb3JtYXQpKQorCQkqdmFsID0gU1VONElfRlJP TlRFTkRfSU5QVVRfRk1UX0RBVEFfRk1UX1lVVjQxMTsKIAllbHNlIGlmIChkcm1fZm9ybWF0X2lu Zm9faXNfeXV2X3NhbXBsaW5nXzQyMChmb3JtYXQpKQogCQkqdmFsID0gU1VONElfRlJPTlRFTkRf SU5QVVRfRk1UX0RBVEFfRk1UX1lVVjQyMDsKIAllbHNlIGlmIChkcm1fZm9ybWF0X2luZm9faXNf eXV2X3NhbXBsaW5nXzQyMihmb3JtYXQpKQogCQkqdmFsID0gU1VONElfRlJPTlRFTkRfSU5QVVRf Rk1UX0RBVEFfRk1UX1lVVjQyMjsKKwllbHNlIGlmIChkcm1fZm9ybWF0X2luZm9faXNfeXV2X3Nh bXBsaW5nXzQ0NChmb3JtYXQpKQorCQkqdmFsID0gU1VONElfRlJPTlRFTkRfSU5QVVRfRk1UX0RB VEFfRk1UX1lVVjQ0NDsKIAllbHNlCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC0xNjgsNiArMjAy LDEwIEBAIHN1bjRpX2Zyb250ZW5kX2RybV9mb3JtYXRfdG9faW5wdXRfbW9kZShjb25zdCBzdHJ1 Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQsCiAJCSp2YWwgPSBTVU40SV9GUk9OVEVORF9JTlBV VF9GTVRfREFUQV9NT0RfU0VNSVBMQU5BUjsKIAkJcmV0dXJuIDA7CiAKKwljYXNlIDM6CisJCSp2 YWwgPSBTVU40SV9GUk9OVEVORF9JTlBVVF9GTVRfREFUQV9NT0RfUExBTkFSOworCQlyZXR1cm4g MDsKKwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE3Nyw2ICsyMTUsMTIg QEAgc3RhdGljIGludAogc3VuNGlfZnJvbnRlbmRfZHJtX2Zvcm1hdF90b19pbnB1dF9zZXF1ZW5j ZShjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQsCiAJCQkJCSAgICB1MzIgKnZh bCkKIHsKKwkvKiBQbGFuYXIgZm9ybWF0cyBoYXZlIGFuIGV4cGxpY2l0IGlucHV0IHNlcXVlbmNl LiAqLworCWlmIChkcm1fZm9ybWF0X2luZm9faXNfeXV2X3BsYW5hcihmb3JtYXQpKSB7CisJCSp2 YWwgPSAwOworCQlyZXR1cm4gMDsKKwl9CisKIAlzd2l0Y2ggKGZvcm1hdC0+Zm9ybWF0KSB7CiAJ Y2FzZSBEUk1fRk9STUFUX0JHUlg4ODg4OgogCQkqdmFsID0gU1VONElfRlJPTlRFTkRfSU5QVVRf Rk1UX0RBVEFfUFNfQkdSWDsKQEAgLTI0OCw3ICsyOTIsMTUgQEAgc3RhdGljIGNvbnN0IHVpbnQz Ml90IHN1bjRpX2Zyb250ZW5kX2Zvcm1hdHNbXSA9IHsKIAlEUk1fRk9STUFUX1VZVlksCiAJRFJN X0ZPUk1BVF9WWVVZLAogCURSTV9GT1JNQVRfWFJHQjg4ODgsCisJRFJNX0ZPUk1BVF9ZVVY0MTEs CisJRFJNX0ZPUk1BVF9ZVVY0MjAsCisJRFJNX0ZPUk1BVF9ZVVY0MjIsCisJRFJNX0ZPUk1BVF9Z VVY0NDQsCiAJRFJNX0ZPUk1BVF9ZVVlWLAorCURSTV9GT1JNQVRfWVZVNDExLAorCURSTV9GT1JN QVRfWVZVNDIwLAorCURSTV9GT1JNQVRfWVZVNDIyLAorCURSTV9GT1JNQVRfWVZVNDQ0LAogCURS TV9GT1JNQVRfWVZZVSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9z dW40aV9mcm9udGVuZC5oIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Zyb250ZW5kLmgK aW5kZXggMmY5ZTNmODRlMmZmLi5jNjI3MzVjMmRjNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9zdW40aS9zdW40aV9mcm9udGVuZC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9z dW40aV9mcm9udGVuZC5oCkBAIC0yMywxNSArMjMsMjAgQEAKIAogI2RlZmluZSBTVU40SV9GUk9O VEVORF9CVUZfQUREUjBfUkVHCQkweDAyMAogI2RlZmluZSBTVU40SV9GUk9OVEVORF9CVUZfQURE UjFfUkVHCQkweDAyNAorI2RlZmluZSBTVU40SV9GUk9OVEVORF9CVUZfQUREUjJfUkVHCQkweDAy OAogCiAjZGVmaW5lIFNVTjRJX0ZST05URU5EX0xJTkVTVFJEMF9SRUcJCTB4MDQwCiAjZGVmaW5l IFNVTjRJX0ZST05URU5EX0xJTkVTVFJEMV9SRUcJCTB4MDQ0CisjZGVmaW5lIFNVTjRJX0ZST05U RU5EX0xJTkVTVFJEMl9SRUcJCTB4MDQ4CiAKICNkZWZpbmUgU1VONElfRlJPTlRFTkRfSU5QVVRf Rk1UX1JFRwkJMHgwNGMKKyNkZWZpbmUgU1VONElfRlJPTlRFTkRfSU5QVVRfRk1UX0RBVEFfTU9E X1BMQU5BUgkoMCA8PCA4KQogI2RlZmluZSBTVU40SV9GUk9OVEVORF9JTlBVVF9GTVRfREFUQV9N T0RfUEFDS0VECSgxIDw8IDgpCiAjZGVmaW5lIFNVTjRJX0ZST05URU5EX0lOUFVUX0ZNVF9EQVRB X01PRF9TRU1JUExBTkFSCSgyIDw8IDgpCisjZGVmaW5lIFNVTjRJX0ZST05URU5EX0lOUFVUX0ZN VF9EQVRBX0ZNVF9ZVVY0NDQJKDAgPDwgNCkKICNkZWZpbmUgU1VONElfRlJPTlRFTkRfSU5QVVRf Rk1UX0RBVEFfRk1UX1lVVjQyMgkoMSA8PCA0KQogI2RlZmluZSBTVU40SV9GUk9OVEVORF9JTlBV VF9GTVRfREFUQV9GTVRfWVVWNDIwCSgyIDw8IDQpCisjZGVmaW5lIFNVTjRJX0ZST05URU5EX0lO UFVUX0ZNVF9EQVRBX0ZNVF9ZVVY0MTEJKDMgPDwgNCkKICNkZWZpbmUgU1VONElfRlJPTlRFTkRf SU5QVVRfRk1UX0RBVEFfRk1UX1JHQgkJKDUgPDwgNCkKICNkZWZpbmUgU1VONElfRlJPTlRFTkRf SU5QVVRfRk1UX0RBVEFfUFNfVVlWWQkJMAogI2RlZmluZSBTVU40SV9GUk9OVEVORF9JTlBVVF9G TVRfREFUQV9QU19ZVVlWCQkxCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3Vu NGlfbGF5ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sYXllci5jCmluZGV4IDE4 NWVmMzg2NDlhYS4uOGNmOGNhOTk3YjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3Vu NGkvc3VuNGlfbGF5ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbGF5ZXIu YwpAQCAtMTQ1LDcgKzE0NSwxNSBAQCBzdGF0aWMgY29uc3QgdWludDMyX3Qgc3VuNGlfbGF5ZXJf Zm9ybWF0c1tdID0gewogCURSTV9GT1JNQVRfVVlWWSwKIAlEUk1fRk9STUFUX1ZZVVksCiAJRFJN X0ZPUk1BVF9YUkdCODg4OCwKKwlEUk1fRk9STUFUX1lVVjQxMSwKKwlEUk1fRk9STUFUX1lVVjQy MCwKKwlEUk1fRk9STUFUX1lVVjQyMiwKKwlEUk1fRk9STUFUX1lVVjQ0NCwKIAlEUk1fRk9STUFU X1lVWVYsCisJRFJNX0ZPUk1BVF9ZVlU0MTEsCisJRFJNX0ZPUk1BVF9ZVlU0MjAsCisJRFJNX0ZP Uk1BVF9ZVlU0MjIsCisJRFJNX0ZPUk1BVF9ZVlU0NDQsCiAJRFJNX0ZPUk1BVF9ZVllVLAogfTsK IAotLSAKMi4xOS4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK