From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lowry Li Subject: [PATCH v5 2/2] drm/mali-dp: Implement plane alpha and pixel blend on malidp Date: Thu, 23 Aug 2018 16:30:20 +0800 Message-ID: <1535013020-23737-3-git-send-email-lowry.li@arm.com> References: <1535013020-23737-1-git-send-email-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0081.outbound.protection.outlook.com [104.47.0.81]) by gabe.freedesktop.org (Postfix) with ESMTPS id 91EFF6E4EA for ; Thu, 23 Aug 2018 08:31:09 +0000 (UTC) In-Reply-To: <1535013020-23737-1-git-send-email-lowry.li@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: liviu.dudau@arm.com Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, emil.l.velikov@gmail.com, seanpaul@chromium.org, malidp@foss.arm.com, daniel.vetter@intel.com, nd@arm.com List-Id: dri-devel@lists.freedesktop.org Q2hlY2tzIHRoZSBwaXhlbCBibGVuZGluZyBtb2RlIGFuZCBwbGFuZSBhbHBoYSB2YWx1ZSB3aGVu CmRvIHRoZSBwbGFuZV9jaGVjay4gTWFsaSBEUCBzdXBwb3J0cyBibGVuZGluZyB0aGUgY3VycmVu dCBwbGFuZQp3aXRoIHRoZSBiYWNrZ3JvdW5kIGVpdGhlciBiYXNlZCBvbiB0aGUgcGl4ZWwgYWxw aGEgYmxlbmRpbmcKbW9kZSBvciBieSB1c2luZyB0aGUgbGF5ZXIncyBhbHBoYSB2YWx1ZSwgYnV0 IG5vdCBib3RoIGF0IHRoZQpzYW1lIHRpbWUuIElmIGJvdGggY2FzZSwgcGxhbmVfY2hlY2sgd2ls bCByZXR1cm4gZmFpbGVkLgoKU2V0cyB0aGUgSFcgd2hlbiBkb2luZyBwbGFuZV91cGRhdGUgYWNj b3JkaW5nbHkuIElmIHBsYW5lIGFscGhhCmlzIHRoZSAweGZmZmYsIHNldCB0aGUgcGl4ZWwgYmxl bmRpbmcgYml0cyBhY2NvcmRpbmdseS4gSWYgbm90CndlJ2Qgc2V0IEFMUEhBIGJpdCBhcyB6ZXJv IGFuZCBsYXllciBhbHBoYSB2YWx1ZS4KCkNoYW5nZXMgc2luY2UgdjE6CiAtIEludHJvZHVjZXMg dG8gdXNlIGl0IGluIHRoZSBtYWxpZHAgZHJpdmVyLCB3aGljaCBkZXBlbmRzIG9uCiAgIHRoZSBw bGFuZSBhbHBoYSBwYXRjaApDaGFuZ2VzIHNpbmNlIHYyOgogLSBSZWZpbmVzIHRoZSBjb21tZW50 cyBvZiBkcm0vbWFsaS1kcCBwYXRjaHNldApDaGFuZ2VzIHNpbmNlIHYzOgogLSBVcGRhdGVzIG9u IGRybS9tYWxpZHAsIGhhcmR3YXJlIGxpbWl0YXRpb24gY2hlY2sgb25seSB3aGVuCiAgIHRoZSBm b3JtYXQgaGFzIGFscGhhIHBpeGVsLgpDaGFuZ2VzIHNpbmNlIHY0OgogLSBSZWJhc2VzIG9uIGRy bS1taXNjLW5leHQuCgpTaWduZWQtb2ZmLWJ5OiBMb3dyeSBMaSA8bG93cnkubGlAYXJtLmNvbT4K QWNrZWQtYnk6IExpdml1IER1ZGF1IDxsaXZpdS5kdWRhdUBhcm0uY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jIHwgNzQgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDMxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5j IGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKaW5kZXggNDljMzdmNi4uMTdi ZTEyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKQEAgLTM2LDYgKzM2LDcgQEAK ICNkZWZpbmUgICBMQVlFUl9DT01QX01BU0sJCSgweDMgPDwgMTIpCiAjZGVmaW5lICAgTEFZRVJf Q09NUF9QSVhFTAkJKDB4MyA8PCAxMikKICNkZWZpbmUgICBMQVlFUl9DT01QX1BMQU5FCQkoMHgy IDw8IDEyKQorI2RlZmluZSAgIExBWUVSX1BNVUxfRU5BQkxFCQkoMHgxIDw8IDE0KQogI2RlZmlu ZSAgIExBWUVSX0FMUEhBX09GRlNFVAkJKDE2KQogI2RlZmluZSAgIExBWUVSX0FMUEhBX01BU0sJ CSgweGZmKQogI2RlZmluZSAgIExBWUVSX0FMUEhBKHgpCQkoKCh4KSAmIExBWUVSX0FMUEhBX01B U0spIDw8IExBWUVSX0FMUEhBX09GRlNFVCkKQEAgLTE4MCw2ICsxODEsNyBAQCBzdGF0aWMgaW50 IG1hbGlkcF9kZV9wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3Qg bWFsaWRwX3BsYW5lX3N0YXRlICptcyA9IHRvX21hbGlkcF9wbGFuZV9zdGF0ZShzdGF0ZSk7CiAJ Ym9vbCByb3RhdGVkID0gc3RhdGUtPnJvdGF0aW9uICYgTUFMSURQX1JPVEFURURfTUFTSzsKIAlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKKwl1MTYgcGl4ZWxfYWxwaGEgPSBzdGF0ZS0+cGl4 ZWxfYmxlbmRfbW9kZTsKIAlpbnQgaSwgcmV0OwogCiAJaWYgKCFzdGF0ZS0+Y3J0YyB8fCAhc3Rh dGUtPmZiKQpAQCAtMjQyLDYgKzI0NCwxMSBAQCBzdGF0aWMgaW50IG1hbGlkcF9kZV9wbGFuZV9j aGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJbXMtPnJvdG1lbV9zaXplID0gdmFsOwog CX0KIAorCS8qIEhXIGNhbid0IHN1cHBvcnQgcGxhbmUgKyBwaXhlbCBibGVuZGluZyAqLworCWlm ICgoc3RhdGUtPmFscGhhICE9IERSTV9CTEVORF9BTFBIQV9PUEFRVUUpICYmCisJICAgIChwaXhl bF9hbHBoYSAhPSBEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSkKKwkJcmV0dXJuIC1FSU5WQUw7 CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzIzLDE3ICszMzAsMTkgQEAgc3RhdGljIHZvaWQgbWFs aWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIHsKIAlzdHJ1Y3Qg bWFsaWRwX3BsYW5lICptcDsKIAlzdHJ1Y3QgbWFsaWRwX3BsYW5lX3N0YXRlICptcyA9IHRvX21h bGlkcF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnN0YXRlID0gcGxhbmUtPnN0YXRlOworCXUxNiBwaXhlbF9hbHBoYSA9IHN0YXRlLT5waXhlbF9i bGVuZF9tb2RlOworCXU4IHBsYW5lX2FscGhhID0gc3RhdGUtPmFscGhhID4+IDg7CiAJdTMyIHNy Y193LCBzcmNfaCwgZGVzdF93LCBkZXN0X2gsIHZhbDsKIAlpbnQgaTsKLQlib29sIGZvcm1hdF9o YXNfYWxwaGEgPSBwbGFuZS0+c3RhdGUtPmZiLT5mb3JtYXQtPmhhc19hbHBoYTsKIAogCW1wID0g dG9fbWFsaWRwX3BsYW5lKHBsYW5lKTsKIAogCS8qIGNvbnZlcnQgc3JjIHZhbHVlcyBmcm9tIFEx NiBmaXhlZCBwb2ludCB0byBpbnRlZ2VyICovCi0Jc3JjX3cgPSBwbGFuZS0+c3RhdGUtPnNyY193 ID4+IDE2OwotCXNyY19oID0gcGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNjsKLQlkZXN0X3cgPSBw bGFuZS0+c3RhdGUtPmNydGNfdzsKLQlkZXN0X2ggPSBwbGFuZS0+c3RhdGUtPmNydGNfaDsKKwlz cmNfdyA9IHN0YXRlLT5zcmNfdyA+PiAxNjsKKwlzcmNfaCA9IHN0YXRlLT5zcmNfaCA+PiAxNjsK KwlkZXN0X3cgPSBzdGF0ZS0+Y3J0Y193OworCWRlc3RfaCA9IHN0YXRlLT5jcnRjX2g7CiAKIAl2 YWwgPSBtYWxpZHBfaHdfcmVhZChtcC0+aHdkZXYsIG1wLT5sYXllci0+YmFzZSk7CiAJdmFsID0g KHZhbCAmIH5MQVlFUl9GT1JNQVRfTUFTSykgfCBtcy0+Zm9ybWF0OwpAQCAtMzQyLDE0ICszNTEs MTQgQEAgc3RhdGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAlmb3IgKGkgPSAwOyBpIDwgbXMtPm5fcGxhbmVzOyBpKyspIHsKIAkJLyogY2Fs Y3VsYXRlIHRoZSBvZmZzZXQgZm9yIHRoZSBsYXllcidzIHBsYW5lIHJlZ2lzdGVycyAqLwogCQl1 MTYgcHRyID0gbXAtPmxheWVyLT5wdHIgKyAoaSA8PCA0KTsKLQkJZG1hX2FkZHJfdCBmYl9hZGRy ID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX2FkZHIocGxhbmUtPnN0YXRlLT5mYiwKLQkJCQkJCQkgICAg IHBsYW5lLT5zdGF0ZSwgaSk7CisJCWRtYV9hZGRyX3QgZmJfYWRkciA9IGRybV9mYl9jbWFfZ2V0 X2dlbV9hZGRyKHN0YXRlLT5mYiwKKwkJCQkJCQkgICAgIHN0YXRlLCBpKTsKIAogCQltYWxpZHBf aHdfd3JpdGUobXAtPmh3ZGV2LCBsb3dlcl8zMl9iaXRzKGZiX2FkZHIpLCBwdHIpOwogCQltYWxp ZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCB1cHBlcl8zMl9iaXRzKGZiX2FkZHIpLCBwdHIgKyA0KTsK IAl9CiAJbWFsaWRwX2RlX3NldF9wbGFuZV9waXRjaGVzKG1wLCBtcy0+bl9wbGFuZXMsCi0JCQkJ ICAgIHBsYW5lLT5zdGF0ZS0+ZmItPnBpdGNoZXMpOworCQkJCSAgICBzdGF0ZS0+ZmItPnBpdGNo ZXMpOwogCiAJaWYgKChwbGFuZS0+c3RhdGUtPmNvbG9yX2VuY29kaW5nICE9IG9sZF9zdGF0ZS0+ Y29sb3JfZW5jb2RpbmcpIHx8CiAJICAgIChwbGFuZS0+c3RhdGUtPmNvbG9yX3JhbmdlICE9IG9s ZF9zdGF0ZS0+Y29sb3JfcmFuZ2UpKQpAQCAtMzYyLDggKzM3MSw4IEBAIHN0YXRpYyB2b2lkIG1h bGlkcF9kZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJbWFsaWRwX2h3 X3dyaXRlKG1wLT5od2RldiwgTEFZRVJfSF9WQUwoZGVzdF93KSB8IExBWUVSX1ZfVkFMKGRlc3Rf aCksCiAJCQltcC0+bGF5ZXItPmJhc2UgKyBNQUxJRFBfTEFZRVJfQ09NUF9TSVpFKTsKIAotCW1h bGlkcF9od193cml0ZShtcC0+aHdkZXYsIExBWUVSX0hfVkFMKHBsYW5lLT5zdGF0ZS0+Y3J0Y194 KSB8Ci0JCQlMQVlFUl9WX1ZBTChwbGFuZS0+c3RhdGUtPmNydGNfeSksCisJbWFsaWRwX2h3X3dy aXRlKG1wLT5od2RldiwgTEFZRVJfSF9WQUwoc3RhdGUtPmNydGNfeCkgfAorCQkJTEFZRVJfVl9W QUwoc3RhdGUtPmNydGNfeSksCiAJCQltcC0+bGF5ZXItPmJhc2UgKyBNQUxJRFBfTEFZRVJfT0ZG U0VUKTsKIAogCWlmIChtcC0+bGF5ZXItPmlkID09IERFX1NNQVJUKQpAQCAtMzc2LDM4ICszODUs MzUgQEAgc3RhdGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAl2YWwgJj0gfkxBWUVSX1JPVF9NQVNLOwogCiAJLyogc2V0dXAgdGhlIHJvdGF0 aW9uIGFuZCBheGlzIGZsaXAgYml0cyAqLwotCWlmIChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uICYg RFJNX01PREVfUk9UQVRFX01BU0spCisJaWYgKHN0YXRlLT5yb3RhdGlvbiAmIERSTV9NT0RFX1JP VEFURV9NQVNLKQogCQl2YWwgfD0gaWxvZzIocGxhbmUtPnN0YXRlLT5yb3RhdGlvbiAmIERSTV9N T0RFX1JPVEFURV9NQVNLKSA8PAogCQkgICAgICAgTEFZRVJfUk9UX09GRlNFVDsKLQlpZiAocGxh bmUtPnN0YXRlLT5yb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxFQ1RfWCkKKwlpZiAoc3RhdGUtPnJv dGF0aW9uICYgRFJNX01PREVfUkVGTEVDVF9YKQogCQl2YWwgfD0gTEFZRVJfSF9GTElQOwotCWlm IChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uICYgRFJNX01PREVfUkVGTEVDVF9ZKQorCWlmIChzdGF0 ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1kpCiAJCXZhbCB8PSBMQVlFUl9WX0ZMSVA7 CiAKLQl2YWwgJj0gfkxBWUVSX0NPTVBfTUFTSzsKLQlpZiAoZm9ybWF0X2hhc19hbHBoYSkgewot Ci0JCS8qCi0JCSAqIGFsd2F5cyBlbmFibGUgcGl4ZWwgYWxwaGEgYmxlbmRpbmcgdW50aWwgd2Ug aGF2ZSBhIHdheQotCQkgKiB0byBjaGFuZ2UgYmxlbmQgbW9kZXMKLQkJICovCi0JCXZhbCB8PSBM QVlFUl9DT01QX1BJWEVMOwotCX0gZWxzZSB7CisJdmFsICY9IH4oTEFZRVJfQ09NUF9NQVNLIHwg TEFZRVJfUE1VTF9FTkFCTEUgfCBMQVlFUl9BTFBIQSgweGZmKSk7CiAKLQkJLyoKLQkJICogZG8g bm90IGVuYWJsZSBwaXhlbCBhbHBoYSBibGVuZGluZyBhcyB0aGUgY29sb3IgY2hhbm5lbAotCQkg KiBkb2VzIG5vdCBoYXZlIGFueSBhbHBoYSBpbmZvcm1hdGlvbgotCQkgKi8KKwlpZiAoc3RhdGUt PmFscGhhICE9IERSTV9CTEVORF9BTFBIQV9PUEFRVUUpIHsKIAkJdmFsIHw9IExBWUVSX0NPTVBf UExBTkU7Ci0KLQkJLyogU2V0IGxheWVyIGFscGhhIGNvZWZmaWNpZW50IHRvIDB4ZmYgaWUgZnVs bHkgb3BhcXVlICovCi0JCXZhbCB8PSBMQVlFUl9BTFBIQSgweGZmKTsKKwl9IGVsc2UgaWYgKHN0 YXRlLT5mYi0+Zm9ybWF0LT5oYXNfYWxwaGEpIHsKKwkJLyogV2Ugb25seSBjYXJlIGFib3V0IGJs ZW5kIG1vZGUgaWYgdGhlIGZvcm1hdCBoYXMgYWxwaGEgKi8KKwkJc3dpdGNoIChwaXhlbF9hbHBo YSkgeworCQljYXNlIERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJOgorCQkJdmFsIHw9IExBWUVSX0NP TVBfUElYRUwgfCBMQVlFUl9QTVVMX0VOQUJMRTsKKwkJCWJyZWFrOworCQljYXNlIERSTV9NT0RF X0JMRU5EX0NPVkVSQUdFOgorCQkJdmFsIHw9IExBWUVSX0NPTVBfUElYRUw7CisJCQlicmVhazsK KwkJfQogCX0KKwl2YWwgfD0gTEFZRVJfQUxQSEEocGxhbmVfYWxwaGEpOwogCiAJdmFsICY9IH5M QVlFUl9GTE9XQ0ZHKExBWUVSX0ZMT1dDRkdfTUFTSyk7Ci0JaWYgKHBsYW5lLT5zdGF0ZS0+Y3J0 YykgeworCWlmIChzdGF0ZS0+Y3J0YykgewogCQlzdHJ1Y3QgbWFsaWRwX2NydGNfc3RhdGUgKm0g PQotCQkJdG9fbWFsaWRwX2NydGNfc3RhdGUocGxhbmUtPnN0YXRlLT5jcnRjLT5zdGF0ZSk7CisJ CQl0b19tYWxpZHBfY3J0Y19zdGF0ZShzdGF0ZS0+Y3J0Yy0+c3RhdGUpOwogCiAJCWlmIChtLT5z Y2FsZXJfY29uZmlnLnNjYWxlX2VuYWJsZSAmJgogCQkgICAgbS0+c2NhbGVyX2NvbmZpZy5wbGFu ZV9zcmNfaWQgPT0gbXAtPmxheWVyLT5pZCkKQEAgLTQ0Niw2ICs0NTIsOSBAQCBpbnQgbWFsaWRw X2RlX3BsYW5lc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCiAJdW5zaWduZWQgbG9uZyBj cnRjcyA9IDEgPDwgZHJtLT5tb2RlX2NvbmZpZy5udW1fY3J0YzsKIAl1bnNpZ25lZCBsb25nIGZs YWdzID0gRFJNX01PREVfUk9UQVRFXzAgfCBEUk1fTU9ERV9ST1RBVEVfOTAgfCBEUk1fTU9ERV9S T1RBVEVfMTgwIHwKIAkJCSAgICAgIERSTV9NT0RFX1JPVEFURV8yNzAgfCBEUk1fTU9ERV9SRUZM RUNUX1ggfCBEUk1fTU9ERV9SRUZMRUNUX1k7CisJdW5zaWduZWQgaW50IGJsZW5kX2NhcHMgPSBC SVQoRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORSkgfAorCQkJCSAgQklUKERSTV9NT0RFX0JMRU5E X1BSRU1VTFRJKSAgIHwKKwkJCQkgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSk7CiAJdTMy ICpmb3JtYXRzOwogCWludCByZXQsIGksIGosIG47CiAKQEAgLTQ5OCw2ICs1MDcsOSBAQCBpbnQg bWFsaWRwX2RlX3BsYW5lc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCiAJCW1hbGlkcF9o d193cml0ZShtYWxpZHAtPmRldiwgTUFMSURQX0FMUEhBX0xVVCwKIAkJCQlwbGFuZS0+bGF5ZXIt PmJhc2UgKyBNQUxJRFBfTEFZRVJfQ09NUE9TRSk7CiAKKwkJZHJtX3BsYW5lX2NyZWF0ZV9hbHBo YV9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UpOworCQlkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVf cHJvcGVydHkoJnBsYW5lLT5iYXNlLCBibGVuZF9jYXBzKTsKKwogCQkvKiBBdHRhY2ggdGhlIFlV Vi0+UkdCIHByb3BlcnR5IG9ubHkgdG8gdmlkZW8gbGF5ZXJzICovCiAJCWlmIChpZCAmIChERV9W SURFTzEgfCBERV9WSURFTzIpKSB7CiAJCQkvKiBkZWZhdWx0IGVuY29kaW5nIGZvciBZVVYtPlJH QiBpcyBCVDYwMSBOQVJST1cgKi8KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK