From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: [PATCH v3 2/2] drm/vc4: Add support for X/Y reflection Date: Fri, 7 Dec 2018 09:36:06 +0100 Message-ID: <20181207083606.15449-2-boris.brezillon@bootlin.com> References: <20181207083606.15449-1-boris.brezillon@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 E9D056E6DD for ; Fri, 7 Dec 2018 08:36:18 +0000 (UTC) In-Reply-To: <20181207083606.15449-1-boris.brezillon@bootlin.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Eric Anholt Cc: Paul Kocialkowski , Boris Brezillon , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QWRkIHN1cHBvcnQgZm9yIFgvWSByZWZsZWN0aW9uIHdoZW4gdGhlIHBsYW5lIGlzIHVzaW5nIGxp bmVhciBvcgpULXRpbGVkIGZvcm1hdHMuIFgvWSByZWZsZWN0aW9uIGhhc24ndCBiZWVuIHRlc3Rl ZCBvbiBTQU5EIGZvcm1hdHMsIHNvCndlIHJlamVjdCB0aGVtIHVudGlsIHByb3BlciB0ZXN0aW5n L2RlYnVnZ2luZyBoYXMgYmVlbiBkb25lLgoKU2lnbmVkLW9mZi1ieTogQm9yaXMgQnJlemlsbG9u IDxib3Jpcy5icmV6aWxsb25AYm9vdGxpbi5jb20+ClJldmlld2VkLWJ5OiBFcmljIEFuaG9sdCA8 ZXJpY0BhbmhvbHQubmV0PgotLS0KQ2hhbmdlcyBpbiB2MzoKLSBBZGQgRXJpYydzIFItYgoKQ2hh bmdlcyBpbiB2MjoKLSBVc2UgZHJtX3JvdGF0aW9uX3NpbXBsaWZ5KCkgdG8gc3VwcG9ydCBST1RB VEVfMTgwCi0gU3VwcG9ydCByb3RhdGlvbi9yZWZsZWN0aW9uIG9uIFNBTkQgZm9ybWF0cwotLS0K IGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMgfCA1OSArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAxMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jIGIv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYwppbmRleCBmYjEyMTRiOTFhMjUuLjI4M2Fi ZDdkMWU5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCkBAIC00OTIsOCArNDkyLDkgQEAgc3Rh dGljIGludCB2YzRfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJYm9v bCBtaXhfcGxhbmVfYWxwaGE7CiAJYm9vbCBjb3ZlcnNfc2NyZWVuOwogCXUzMiBzY2wwLCBzY2wx LCBwaXRjaDA7Ci0JdTMyIHRpbGluZzsKKwl1MzIgdGlsaW5nLCBzcmNfeTsKIAl1MzIgaHZzX2Zv cm1hdCA9IGZvcm1hdC0+aHZzOworCXVuc2lnbmVkIGludCByb3RhdGlvbjsKIAlpbnQgcmV0LCBp OwogCiAJaWYgKHZjNF9zdGF0ZS0+ZGxpc3RfaW5pdGlhbGl6ZWQpCkBAIC01MjAsNiArNTIxLDE2 IEBAIHN0YXRpYyBpbnQgdmM0X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCWhfc3Vic2FtcGxlID0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmb3Jt YXQtPmRybSk7CiAJdl9zdWJzYW1wbGUgPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBs aW5nKGZvcm1hdC0+ZHJtKTsKIAorCXJvdGF0aW9uID0gZHJtX3JvdGF0aW9uX3NpbXBsaWZ5KHN0 YXRlLT5yb3RhdGlvbiwKKwkJCQkJIERSTV9NT0RFX1JPVEFURV8wIHwKKwkJCQkJIERSTV9NT0RF X1JFRkxFQ1RfWCB8CisJCQkJCSBEUk1fTU9ERV9SRUZMRUNUX1kpOworCisJLyogV2UgbXVzdCBw b2ludCB0byB0aGUgbGFzdCBsaW5lIHdoZW4gWSByZWZsZWN0aW9uIGlzIGVuYWJsZWQuICovCisJ c3JjX3kgPSB2YzRfc3RhdGUtPnNyY195OworCWlmIChyb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxF Q1RfWSkKKwkJc3JjX3kgKz0gdmM0X3N0YXRlLT5zcmNfaFswXSAtIDE7CisKIAlzd2l0Y2ggKGJh c2VfZm9ybWF0X21vZCkgewogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTElORUFSOgogCQl0aWxpbmcg PSBTQ0FMRVJfQ1RMMF9USUxJTkdfTElORUFSOwpAQCAtNTI5LDkgKzU0MCwxMCBAQCBzdGF0aWMg aW50IHZjNF9wbGFuZV9tb2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJICogb3V0 LgogCQkgKi8KIAkJZm9yIChpID0gMDsgaSA8IG51bV9wbGFuZXM7IGkrKykgewotCQkJdmM0X3N0 YXRlLT5vZmZzZXRzW2ldICs9IHZjNF9zdGF0ZS0+c3JjX3kgLworCQkJdmM0X3N0YXRlLT5vZmZz ZXRzW2ldICs9IHNyY195IC8KIAkJCQkJCSAoaSA/IHZfc3Vic2FtcGxlIDogMSkgKgogCQkJCQkJ IGZiLT5waXRjaGVzW2ldOworCiAJCQl2YzRfc3RhdGUtPm9mZnNldHNbaV0gKz0gdmM0X3N0YXRl LT5zcmNfeCAvCiAJCQkJCQkgKGkgPyBoX3N1YnNhbXBsZSA6IDEpICoKIAkJCQkJCSBmYi0+Zm9y bWF0LT5jcHBbaV07CkBAIC01NTcsMjIgKzU2OSwzOCBAQCBzdGF0aWMgaW50IHZjNF9wbGFuZV9t b2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJdTMyIHRpbGVzX3cgPSBmYi0+cGl0 Y2hlc1swXSA+PiAodGlsZV9zaXplX3NoaWZ0IC0gdGlsZV9oX3NoaWZ0KTsKIAkJdTMyIHRpbGVz X2wgPSB2YzRfc3RhdGUtPnNyY194ID4+IHRpbGVfd19zaGlmdDsKIAkJdTMyIHRpbGVzX3IgPSB0 aWxlc193IC0gdGlsZXNfbDsKLQkJdTMyIHRpbGVzX3QgPSB2YzRfc3RhdGUtPnNyY195ID4+IHRp bGVfaF9zaGlmdDsKKwkJdTMyIHRpbGVzX3QgPSBzcmNfeSA+PiB0aWxlX2hfc2hpZnQ7CiAJCS8q IEludHJhLXRpbGUgb2Zmc2V0cywgd2hpY2ggbW9kaWZ5IHRoZSBiYXNlIGFkZHJlc3MgKHRoZQog CQkgKiBTQ0FMRVJfUElUQ0gwX1RJTEVfWV9PRkZTRVQgdGVsbHMgSFZTIGhvdyB0byB3YWxrIGZy b20gdGhhdAogCQkgKiBiYXNlIGFkZHJlc3MpLgogCQkgKi8KLQkJdTMyIHRpbGVfeSA9ICh2YzRf c3RhdGUtPnNyY195ID4+IDQpICYgMTsKLQkJdTMyIHN1YnRpbGVfeSA9ICh2YzRfc3RhdGUtPnNy Y195ID4+IDIpICYgMzsKLQkJdTMyIHV0aWxlX3kgPSB2YzRfc3RhdGUtPnNyY195ICYgMzsKKwkJ dTMyIHRpbGVfeSA9IChzcmNfeSA+PiA0KSAmIDE7CisJCXUzMiBzdWJ0aWxlX3kgPSAoc3JjX3kg Pj4gMikgJiAzOworCQl1MzIgdXRpbGVfeSA9IHNyY195ICYgMzsKIAkJdTMyIHhfb2ZmID0gdmM0 X3N0YXRlLT5zcmNfeCAmIHRpbGVfd19tYXNrOwotCQl1MzIgeV9vZmYgPSB2YzRfc3RhdGUtPnNy Y195ICYgdGlsZV9oX21hc2s7CisJCXUzMiB5X29mZiA9IHNyY195ICYgdGlsZV9oX21hc2s7CisK KwkJLyogV2hlbiBZIHJlZmxlY3Rpb24gaXMgcmVxdWVzdGVkIHdlIG11c3Qgc2V0IHRoZQorCQkg KiBTQ0FMRVJfUElUQ0gwX1RJTEVfTElORV9ESVIgZmxhZyB0byB0ZWxsIEhWUyB0aGF0IGFsbCBs aW5lcworCQkgKiBhZnRlciB0aGUgaW5pdGlhbCBvbmUgc2hvdWxkIGJlIGZldGNoZWQgaW4gZGVz Y2VuZGluZyBvcmRlciwKKwkJICogd2hpY2ggbWFrZXMgc2Vuc2Ugc2luY2Ugd2Ugc3RhcnQgZnJv bSB0aGUgbGFzdCBsaW5lIGFuZCBnbworCQkgKiBiYWNrd2FyZC4KKwkJICogRG9uJ3Qga25vdyB3 aHkgd2UgbmVlZCB5X29mZiA9IG1heF95X29mZiAtIHlfb2ZmLCBidXQgaXQncworCQkgKiBkZWZp bml0ZWx5IHJlcXVpcmVkIChJIGd1ZXNzIGl0J3MgYWxzbyByZWxhdGVkIHRvIHRoZSAiZ29pbmcK KwkJICogYmFja3dhcmQiIHNpdHVhdGlvbikuCisJCSAqLworCQlpZiAocm90YXRpb24gJiBEUk1f TU9ERV9SRUZMRUNUX1kpIHsKKwkJCXlfb2ZmID0gdGlsZV9oX21hc2sgLSB5X29mZjsKKwkJCXBp dGNoMCA9IFNDQUxFUl9QSVRDSDBfVElMRV9MSU5FX0RJUjsKKwkJfSBlbHNlIHsKKwkJCXBpdGNo MCA9IDA7CisJCX0KIAogCQl0aWxpbmcgPSBTQ0FMRVJfQ1RMMF9USUxJTkdfMjU2Ql9PUl9UOwot CQlwaXRjaDAgPSAoVkM0X1NFVF9GSUVMRCh4X29mZiwgU0NBTEVSX1BJVENIMF9TSU5LX1BJWCkg fAotCQkJICBWQzRfU0VUX0ZJRUxEKHlfb2ZmLCBTQ0FMRVJfUElUQ0gwX1RJTEVfWV9PRkZTRVQp IHwKLQkJCSAgVkM0X1NFVF9GSUVMRCh0aWxlc19sLCBTQ0FMRVJfUElUQ0gwX1RJTEVfV0lEVEhf TCkgfAotCQkJICBWQzRfU0VUX0ZJRUxEKHRpbGVzX3IsIFNDQUxFUl9QSVRDSDBfVElMRV9XSURU SF9SKSk7CisJCXBpdGNoMCB8PSAoVkM0X1NFVF9GSUVMRCh4X29mZiwgU0NBTEVSX1BJVENIMF9T SU5LX1BJWCkgfAorCQkJICAgVkM0X1NFVF9GSUVMRCh5X29mZiwgU0NBTEVSX1BJVENIMF9USUxF X1lfT0ZGU0VUKSB8CisJCQkgICBWQzRfU0VUX0ZJRUxEKHRpbGVzX2wsIFNDQUxFUl9QSVRDSDBf VElMRV9XSURUSF9MKSB8CisJCQkgICBWQzRfU0VUX0ZJRUxEKHRpbGVzX3IsIFNDQUxFUl9QSVRD SDBfVElMRV9XSURUSF9SKSk7CiAJCXZjNF9zdGF0ZS0+b2Zmc2V0c1swXSArPSB0aWxlc190ICog KHRpbGVzX3cgPDwgdGlsZV9zaXplX3NoaWZ0KTsKIAkJdmM0X3N0YXRlLT5vZmZzZXRzWzBdICs9 IHN1YnRpbGVfeSA8PCA4OwogCQl2YzRfc3RhdGUtPm9mZnNldHNbMF0gKz0gdXRpbGVfeSA8PCA0 OwpAQCAtNjQzLDcgKzY3MSw3IEBAIHN0YXRpYyBpbnQgdmM0X3BsYW5lX21vZGVfc2V0KHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCQkgKi8KIAkJZm9yIChpID0gMDsgaSA8IG51bV9wbGFuZXM7 IGkrKykgewogCQkJdmM0X3N0YXRlLT5vZmZzZXRzW2ldICs9IHBhcmFtICogdGlsZV93ICogdGls ZTsKLQkJCXZjNF9zdGF0ZS0+b2Zmc2V0c1tpXSArPSB2YzRfc3RhdGUtPnNyY195IC8KKwkJCXZj NF9zdGF0ZS0+b2Zmc2V0c1tpXSArPSBzcmNfeSAvCiAJCQkJCQkgKGkgPyB2X3N1YnNhbXBsZSA6 IDEpICoKIAkJCQkJCSB0aWxlX3c7CiAJCQl2YzRfc3RhdGUtPm9mZnNldHNbaV0gKz0geF9vZmYg LwpAQCAtNjY0LDYgKzY5Miw4IEBAIHN0YXRpYyBpbnQgdmM0X3BsYW5lX21vZGVfc2V0KHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCS8qIENvbnRyb2wgd29yZCAqLwogCXZjNF9kbGlzdF93cml0 ZSh2YzRfc3RhdGUsCiAJCQlTQ0FMRVJfQ1RMMF9WQUxJRCB8CisJCQkocm90YXRpb24gJiBEUk1f TU9ERV9SRUZMRUNUX1ggPyBTQ0FMRVJfQ1RMMF9IRkxJUCA6IDApIHwKKwkJCShyb3RhdGlvbiAm IERSTV9NT0RFX1JFRkxFQ1RfWSA/IFNDQUxFUl9DVEwwX1ZGTElQIDogMCkgfAogCQkJVkM0X1NF VF9GSUVMRChTQ0FMRVJfQ1RMMF9SR0JBX0VYUEFORF9ST1VORCwgU0NBTEVSX0NUTDBfUkdCQV9F WFBBTkQpIHwKIAkJCShmb3JtYXQtPnBpeGVsX29yZGVyIDw8IFNDQUxFUl9DVEwwX09SREVSX1NI SUZUKSB8CiAJCQkoaHZzX2Zvcm1hdCA8PCBTQ0FMRVJfQ1RMMF9QSVhFTF9GT1JNQVRfU0hJRlQp IHwKQEAgLTExNDQsNiArMTE3NCwxMSBAQCBzdHJ1Y3QgZHJtX3BsYW5lICp2YzRfcGxhbmVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWRybV9wbGFuZV9oZWxwZXJfYWRkKHBsYW5lLCAm dmM0X3BsYW5lX2hlbHBlcl9mdW5jcyk7CiAKIAlkcm1fcGxhbmVfY3JlYXRlX2FscGhhX3Byb3Bl cnR5KHBsYW5lKTsKKwlkcm1fcGxhbmVfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KHBsYW5lLCBE Uk1fTU9ERV9ST1RBVEVfMCwKKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzAgfAorCQkJCQkgICBE Uk1fTU9ERV9ST1RBVEVfMTgwIHwKKwkJCQkJICAgRFJNX01PREVfUkVGTEVDVF9YIHwKKwkJCQkJ ICAgRFJNX01PREVfUkVGTEVDVF9ZKTsKIAogCXJldHVybiBwbGFuZTsKIH0KLS0gCjIuMTcuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==