From mboxrd@z Thu Jan 1 00:00:00 1970
From: Philipp Zabel
Subject: [PATCH 08/10] drm/imx: ipuv3-plane: add support for YUV 4:2:2 and
4:4:4, NV12, and NV16 formats
Date: Wed, 19 Oct 2016 12:21:15 +0200
Message-ID: <1476872477-29493-8-git-send-email-p.zabel@pengutronix.de>
References: <1476872477-29493-1-git-send-email-p.zabel@pengutronix.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de
[IPv6:2001:67c:670:201:290:27ff:fe1d:cc33])
by gabe.freedesktop.org (Postfix) with ESMTPS id 503DD6E8BE
for ; Wed, 19 Oct 2016 10:21:25 +0000 (UTC)
In-Reply-To: <1476872477-29493-1-git-send-email-p.zabel@pengutronix.de>
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
Cc: kernel@pengutronix.de
List-Id: dri-devel@lists.freedesktop.org
SG9vayB1cCBzdXBwb3J0IGZvciBEUk1fRk9STUFUX1lVVjQyMiwgRFJNX0ZPUk1BVF9ZVlU0MjIs
CkRSTV9GT1JNQVRfWVVWNDQ0LCBEUk1fRk9STUFUX1lWVTQ0NCwgRFJNX0ZPUk1BVF9OVjEyLAph
bmQgRFJNX0ZPUk1BVF9OVjE2LgoKU2lnbmVkLW9mZi1ieTogUGhpbGlwcCBaYWJlbCA8cC56YWJl
bEBwZW5ndXRyb25peC5kZT4KLS0tCkNoYW5nZXMgc2luY2UgdjE6CiAtIE1ha2UgVUJPL1ZCTyBz
d2FwIGZvciBZVlUgZm9ybWF0cyBtb3JlIG9idmlvdXMgaW4gaXB1X3BsYW5lX2F0b21pY191cGRh
dGUKLS0tCiBkcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMgfCA2MCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NyBpbnNlcnRp
b25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14
L2lwdXYzLXBsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKaW5kZXgg
NTI3ODRjYi4uNmE5N2UzOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMt
cGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKQEAgLTUwLDYg
KzUwLDEyIEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBpcHVfcGxhbmVfZm9ybWF0c1tdID0gewog
CURSTV9GT1JNQVRfWVZZVSwKIAlEUk1fRk9STUFUX1lVVjQyMCwKIAlEUk1fRk9STUFUX1lWVTQy
MCwKKwlEUk1fRk9STUFUX1lVVjQyMiwKKwlEUk1fRk9STUFUX1lWVTQyMiwKKwlEUk1fRk9STUFU
X1lVVjQ0NCwKKwlEUk1fRk9STUFUX1lWVTQ0NCwKKwlEUk1fRk9STUFUX05WMTIsCisJRFJNX0ZP
Uk1BVF9OVjE2LAogCURSTV9GT1JNQVRfUkdCNTY1LAogfTsKIApAQCAtMjkyLDYgKzI5OCwxMCBA
QCBzdGF0aWMgaW50IGlwdV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxh
bmUsCiAJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX1lVVjQy
MDoKIAljYXNlIERSTV9GT1JNQVRfWVZVNDIwOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVVY0MjI6CisJ
Y2FzZSBEUk1fRk9STUFUX1lWVTQyMjoKKwljYXNlIERSTV9GT1JNQVRfWVVWNDQ0OgorCWNhc2Ug
RFJNX0ZPUk1BVF9ZVlU0NDQ6CiAJCS8qCiAJCSAqIE11bHRpcGxhbmFyIGZvcm1hdHMgaGF2ZSB0
byBtZWV0IHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogCQkgKiAtIFRoZSAodXAgdG8pIHRo
cmVlIHBsYW5lIGFkZHJlc3NlcyBhcmUgRUJBLCBFQkErVUJPLCBFQkErVkJPCkBAIC0zMDAsMjUg
KzMxMCwzNCBAQCBzdGF0aWMgaW50IGlwdV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9w
bGFuZSAqcGxhbmUsCiAJCSAqIC0gT25seSBFQkEgbWF5IGJlIGNoYW5nZWQgd2hpbGUgc2Nhbm91
dCBpcyBhY3RpdmUKIAkJICogLSBUaGUgc3RyaWRlcyBvZiBVIGFuZCBWIHBsYW5lcyBtdXN0IGJl
IGlkZW50aWNhbC4KIAkJICovCi0JCXVibyA9IGRybV9wbGFuZV9zdGF0ZV90b191Ym8oc3RhdGUp
OwogCQl2Ym8gPSBkcm1fcGxhbmVfc3RhdGVfdG9fdmJvKHN0YXRlKTsKIAotCQlpZiAoKHVibyAm
IDB4NykgfHwgKHZibyAmIDB4NykpCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQotCQlpZiAoKHVibyA+
IDB4ZmZmZmY4KSB8fCAodmJvID4gMHhmZmZmZjgpKQorCQlpZiAodmJvICYgMHg3IHx8IHZibyA+
IDB4ZmZmZmY4KQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJaWYgKG9sZF9mYiAmJiAoZmItPnBp
eGVsX2Zvcm1hdCA9PSBvbGRfZmItPnBpeGVsX2Zvcm1hdCkpIHsKLQkJCW9sZF91Ym8gPSBkcm1f
cGxhbmVfc3RhdGVfdG9fdWJvKG9sZF9zdGF0ZSk7CiAJCQlvbGRfdmJvID0gZHJtX3BsYW5lX3N0
YXRlX3RvX3ZibyhvbGRfc3RhdGUpOwotCQkJaWYgKHVibyAhPSBvbGRfdWJvIHx8IHZibyAhPSBv
bGRfdmJvKQorCQkJaWYgKHZibyAhPSBvbGRfdmJvKQogCQkJCWNydGNfc3RhdGUtPm1vZGVfY2hh
bmdlZCA9IHRydWU7CiAJCX0KIAogCQlpZiAoZmItPnBpdGNoZXNbMV0gIT0gZmItPnBpdGNoZXNb
Ml0pCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAorCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIERS
TV9GT1JNQVRfTlYxMjoKKwljYXNlIERSTV9GT1JNQVRfTlYxNjoKKwkJdWJvID0gZHJtX3BsYW5l
X3N0YXRlX3RvX3VibyhzdGF0ZSk7CisKKwkJaWYgKHVibyAmIDB4NyB8fCB1Ym8gPiAweGZmZmZm
OCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlmIChvbGRfZmIgJiYgKGZiLT5waXhlbF9mb3Jt
YXQgPT0gb2xkX2ZiLT5waXhlbF9mb3JtYXQpKSB7CisJCQlvbGRfdWJvID0gZHJtX3BsYW5lX3N0
YXRlX3RvX3VibyhvbGRfc3RhdGUpOworCQkJaWYgKHVibyAhPSBvbGRfdWJvKQorCQkJCWNydGNf
c3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CisJCX0KKwogCQlpZiAoZmItPnBpdGNoZXNbMV0g
PCAxIHx8IGZiLT5waXRjaGVzWzFdID4gMTYzODQpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAt
NDA5LDIwICs0MjgsMzUgQEAgc3RhdGljIHZvaWQgaXB1X3BsYW5lX2F0b21pY191cGRhdGUoc3Ry
dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CiAJY2Fz
ZSBEUk1fRk9STUFUX1lVVjQyMDoKIAljYXNlIERSTV9GT1JNQVRfWVZVNDIwOgorCWNhc2UgRFJN
X0ZPUk1BVF9ZVVY0MjI6CisJY2FzZSBEUk1fRk9STUFUX1lWVTQyMjoKKwljYXNlIERSTV9GT1JN
QVRfWVVWNDQ0OgorCWNhc2UgRFJNX0ZPUk1BVF9ZVlU0NDQ6CiAJCXVibyA9IGRybV9wbGFuZV9z
dGF0ZV90b191Ym8oc3RhdGUpOwogCQl2Ym8gPSBkcm1fcGxhbmVfc3RhdGVfdG9fdmJvKHN0YXRl
KTsKKwkJaWYgKGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0MjAgfHwKKwkJICAg
IGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0MjIgfHwKKwkJICAgIGZiLT5waXhl
bF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0NDQpCisJCQlzd2FwKHVibywgdmJvKTsKIAotCQlp
ZiAoZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1lVVjQyMCkKLQkJCWlwdV9jcG1lbV9z
ZXRfeXV2X3BsYW5hcl9mdWxsKGlwdV9wbGFuZS0+aXB1X2NoLAotCQkJCQkJICAgICAgZmItPnBp
dGNoZXNbMV0sIHVibywgdmJvKTsKLQkJZWxzZQotCQkJaXB1X2NwbWVtX3NldF95dXZfcGxhbmFy
X2Z1bGwoaXB1X3BsYW5lLT5pcHVfY2gsCi0JCQkJCQkgICAgICBmYi0+cGl0Y2hlc1sxXSwgdmJv
LCB1Ym8pOworCQlpcHVfY3BtZW1fc2V0X3l1dl9wbGFuYXJfZnVsbChpcHVfcGxhbmUtPmlwdV9j
aCwKKwkJCQkJICAgICAgZmItPnBpdGNoZXNbMV0sIHVibywgdmJvKTsKIAogCQlkZXZfZGJnKGlw
dV9wbGFuZS0+YmFzZS5kZXYtPmRldiwKIAkJCSJwaHkgPSAlbHUgJWx1ICVsdSwgeCA9ICVkLCB5
ID0gJWQiLCBlYmEsIHVibywgdmJvLAogCQkJc3RhdGUtPnNyY194ID4+IDE2LCBzdGF0ZS0+c3Jj
X3kgPj4gMTYpOwogCQlicmVhazsKKwljYXNlIERSTV9GT1JNQVRfTlYxMjoKKwljYXNlIERSTV9G
T1JNQVRfTlYxNjoKKwkJdWJvID0gZHJtX3BsYW5lX3N0YXRlX3RvX3VibyhzdGF0ZSk7CisKKwkJ
aXB1X2NwbWVtX3NldF95dXZfcGxhbmFyX2Z1bGwoaXB1X3BsYW5lLT5pcHVfY2gsCisJCQkJCSAg
ICAgIGZiLT5waXRjaGVzWzFdLCB1Ym8sIHVibyk7CisKKwkJZGV2X2RiZyhpcHVfcGxhbmUtPmJh
c2UuZGV2LT5kZXYsCisJCQkicGh5ID0gJWx1ICVsdSwgeCA9ICVkLCB5ID0gJWQiLCBlYmEsIHVi
bywKKwkJCXN0YXRlLT5zcmNfeCA+PiAxNiwgc3RhdGUtPnNyY195ID4+IDE2KTsKKwkJYnJlYWs7
CiAJZGVmYXVsdDoKIAkJZGV2X2RiZyhpcHVfcGxhbmUtPmJhc2UuZGV2LT5kZXYsICJwaHlzID0g
JWx1LCB4ID0gJWQsIHkgPSAlZCIsCiAJCQllYmEsIHN0YXRlLT5zcmNfeCA+PiAxNiwgc3RhdGUt
PnNyY195ID4+IDE2KTsKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m
cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0
aW5mby9kcmktZGV2ZWwK