From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lowry Li Subject: [PATCH v4 2/2] drm/mali-dp: Implement plane alpha and pixel blend on malidp Date: Wed, 15 Aug 2018 14:35:33 +0800 Message-ID: <1534314933-23182-3-git-send-email-lowry.li@arm.com> References: <1534314933-23182-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 EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70052.outbound.protection.outlook.com [40.107.7.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9FD226E30D for ; Wed, 15 Aug 2018 06:36:06 +0000 (UTC) In-Reply-To: <1534314933-23182-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 b3JtYXQgaGFzIGFscGhhIHBpeGVsLgoKU2lnbmVkLW9mZi1ieTogTG93cnkgTGkgPGxvd3J5Lmxp QGFybS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMgfCA3NCAr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDMg aW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFu ZXMuYwppbmRleCA0OWMzN2Y2Li4xN2JlMTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YXJtL21hbGlkcF9wbGFuZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFu ZXMuYwpAQCAtMzYsNiArMzYsNyBAQAogI2RlZmluZSAgIExBWUVSX0NPTVBfTUFTSwkJKDB4MyA8 PCAxMikKICNkZWZpbmUgICBMQVlFUl9DT01QX1BJWEVMCQkoMHgzIDw8IDEyKQogI2RlZmluZSAg IExBWUVSX0NPTVBfUExBTkUJCSgweDIgPDwgMTIpCisjZGVmaW5lICAgTEFZRVJfUE1VTF9FTkFC TEUJCSgweDEgPDwgMTQpCiAjZGVmaW5lICAgTEFZRVJfQUxQSEFfT0ZGU0VUCQkoMTYpCiAjZGVm aW5lICAgTEFZRVJfQUxQSEFfTUFTSwkJKDB4ZmYpCiAjZGVmaW5lICAgTEFZRVJfQUxQSEEoeCkJ CSgoKHgpICYgTEFZRVJfQUxQSEFfTUFTSykgPDwgTEFZRVJfQUxQSEFfT0ZGU0VUKQpAQCAtMTgw LDYgKzE4MSw3IEBAIHN0YXRpYyBpbnQgbWFsaWRwX2RlX3BsYW5lX2NoZWNrKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCXN0cnVjdCBtYWxpZHBfcGxhbmVfc3RhdGUgKm1zID0gdG9fbWFsaWRw X3BsYW5lX3N0YXRlKHN0YXRlKTsKIAlib29sIHJvdGF0ZWQgPSBzdGF0ZS0+cm90YXRpb24gJiBN QUxJRFBfUk9UQVRFRF9NQVNLOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOworCXUxNiBw aXhlbF9hbHBoYSA9IHN0YXRlLT5waXhlbF9ibGVuZF9tb2RlOwogCWludCBpLCByZXQ7CiAKIAlp ZiAoIXN0YXRlLT5jcnRjIHx8ICFzdGF0ZS0+ZmIpCkBAIC0yNDIsNiArMjQ0LDExIEBAIHN0YXRp YyBpbnQgbWFsaWRwX2RlX3BsYW5lX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlt cy0+cm90bWVtX3NpemUgPSB2YWw7CiAJfQogCisJLyogSFcgY2FuJ3Qgc3VwcG9ydCBwbGFuZSAr IHBpeGVsIGJsZW5kaW5nICovCisJaWYgKChzdGF0ZS0+YWxwaGEgIT0gRFJNX0JMRU5EX0FMUEhB X09QQVFVRSkgJiYKKwkgICAgKHBpeGVsX2FscGhhICE9IERSTV9NT0RFX0JMRU5EX1BJWEVMX05P TkUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCXJldHVybiAwOwogfQogCkBAIC0zMjMsMTcgKzMz MCwxOSBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAogewogCXN0cnVjdCBtYWxpZHBfcGxhbmUgKm1wOwogCXN0cnVjdCBtYWxpZHBf cGxhbmVfc3RhdGUgKm1zID0gdG9fbWFsaWRwX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7CisJ c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7CisJdTE2IHBpeGVs X2FscGhhID0gc3RhdGUtPnBpeGVsX2JsZW5kX21vZGU7CisJdTggcGxhbmVfYWxwaGEgPSBzdGF0 ZS0+YWxwaGEgPj4gODsKIAl1MzIgc3JjX3csIHNyY19oLCBkZXN0X3csIGRlc3RfaCwgdmFsOwog CWludCBpOwotCWJvb2wgZm9ybWF0X2hhc19hbHBoYSA9IHBsYW5lLT5zdGF0ZS0+ZmItPmZvcm1h dC0+aGFzX2FscGhhOwogCiAJbXAgPSB0b19tYWxpZHBfcGxhbmUocGxhbmUpOwogCiAJLyogY29u dmVydCBzcmMgdmFsdWVzIGZyb20gUTE2IGZpeGVkIHBvaW50IHRvIGludGVnZXIgKi8KLQlzcmNf dyA9IHBsYW5lLT5zdGF0ZS0+c3JjX3cgPj4gMTY7Ci0Jc3JjX2ggPSBwbGFuZS0+c3RhdGUtPnNy Y19oID4+IDE2OwotCWRlc3RfdyA9IHBsYW5lLT5zdGF0ZS0+Y3J0Y193OwotCWRlc3RfaCA9IHBs YW5lLT5zdGF0ZS0+Y3J0Y19oOworCXNyY193ID0gc3RhdGUtPnNyY193ID4+IDE2OworCXNyY19o ID0gc3RhdGUtPnNyY19oID4+IDE2OworCWRlc3RfdyA9IHN0YXRlLT5jcnRjX3c7CisJZGVzdF9o ID0gc3RhdGUtPmNydGNfaDsKIAogCXZhbCA9IG1hbGlkcF9od19yZWFkKG1wLT5od2RldiwgbXAt PmxheWVyLT5iYXNlKTsKIAl2YWwgPSAodmFsICYgfkxBWUVSX0ZPUk1BVF9NQVNLKSB8IG1zLT5m b3JtYXQ7CkBAIC0zNDIsMTQgKzM1MSwxNCBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVf dXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWZvciAoaSA9IDA7IGkgPCBtcy0+bl9w bGFuZXM7IGkrKykgewogCQkvKiBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgdGhlIGxheWVyJ3Mg cGxhbmUgcmVnaXN0ZXJzICovCiAJCXUxNiBwdHIgPSBtcC0+bGF5ZXItPnB0ciArIChpIDw8IDQp OwotCQlkbWFfYWRkcl90IGZiX2FkZHIgPSBkcm1fZmJfY21hX2dldF9nZW1fYWRkcihwbGFuZS0+ c3RhdGUtPmZiLAotCQkJCQkJCSAgICAgcGxhbmUtPnN0YXRlLCBpKTsKKwkJZG1hX2FkZHJfdCBm Yl9hZGRyID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX2FkZHIoc3RhdGUtPmZiLAorCQkJCQkJCSAgICAg c3RhdGUsIGkpOwogCiAJCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIGxvd2VyXzMyX2JpdHMo ZmJfYWRkciksIHB0cik7CiAJCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIHVwcGVyXzMyX2Jp dHMoZmJfYWRkciksIHB0ciArIDQpOwogCX0KIAltYWxpZHBfZGVfc2V0X3BsYW5lX3BpdGNoZXMo bXAsIG1zLT5uX3BsYW5lcywKLQkJCQkgICAgcGxhbmUtPnN0YXRlLT5mYi0+cGl0Y2hlcyk7CisJ CQkJICAgIHN0YXRlLT5mYi0+cGl0Y2hlcyk7CiAKIAlpZiAoKHBsYW5lLT5zdGF0ZS0+Y29sb3Jf ZW5jb2RpbmcgIT0gb2xkX3N0YXRlLT5jb2xvcl9lbmNvZGluZykgfHwKIAkgICAgKHBsYW5lLT5z dGF0ZS0+Y29sb3JfcmFuZ2UgIT0gb2xkX3N0YXRlLT5jb2xvcl9yYW5nZSkpCkBAIC0zNjIsOCAr MzcxLDggQEAgc3RhdGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBMQVlFUl9IX1ZBTChkZXN0 X3cpIHwgTEFZRVJfVl9WQUwoZGVzdF9oKSwKIAkJCW1wLT5sYXllci0+YmFzZSArIE1BTElEUF9M QVlFUl9DT01QX1NJWkUpOwogCi0JbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgTEFZRVJfSF9W QUwocGxhbmUtPnN0YXRlLT5jcnRjX3gpIHwKLQkJCUxBWUVSX1ZfVkFMKHBsYW5lLT5zdGF0ZS0+ Y3J0Y195KSwKKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBMQVlFUl9IX1ZBTChzdGF0ZS0+ Y3J0Y194KSB8CisJCQlMQVlFUl9WX1ZBTChzdGF0ZS0+Y3J0Y195KSwKIAkJCW1wLT5sYXllci0+ YmFzZSArIE1BTElEUF9MQVlFUl9PRkZTRVQpOwogCiAJaWYgKG1wLT5sYXllci0+aWQgPT0gREVf U01BUlQpCkBAIC0zNzYsMzggKzM4NSwzNSBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVf dXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXZhbCAmPSB+TEFZRVJfUk9UX01BU0s7 CiAKIAkvKiBzZXR1cCB0aGUgcm90YXRpb24gYW5kIGF4aXMgZmxpcCBiaXRzICovCi0JaWYgKHBs YW5lLT5zdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfTUFTSykKKwlpZiAoc3RhdGUt PnJvdGF0aW9uICYgRFJNX01PREVfUk9UQVRFX01BU0spCiAJCXZhbCB8PSBpbG9nMihwbGFuZS0+ c3RhdGUtPnJvdGF0aW9uICYgRFJNX01PREVfUk9UQVRFX01BU0spIDw8CiAJCSAgICAgICBMQVlF Ul9ST1RfT0ZGU0VUOwotCWlmIChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uICYgRFJNX01PREVfUkVG TEVDVF9YKQorCWlmIChzdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1gpCiAJCXZh bCB8PSBMQVlFUl9IX0ZMSVA7Ci0JaWYgKHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9E RV9SRUZMRUNUX1kpCisJaWYgKHN0YXRlLT5yb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxFQ1RfWSkK IAkJdmFsIHw9IExBWUVSX1ZfRkxJUDsKIAotCXZhbCAmPSB+TEFZRVJfQ09NUF9NQVNLOwotCWlm IChmb3JtYXRfaGFzX2FscGhhKSB7Ci0KLQkJLyoKLQkJICogYWx3YXlzIGVuYWJsZSBwaXhlbCBh bHBoYSBibGVuZGluZyB1bnRpbCB3ZSBoYXZlIGEgd2F5Ci0JCSAqIHRvIGNoYW5nZSBibGVuZCBt b2RlcwotCQkgKi8KLQkJdmFsIHw9IExBWUVSX0NPTVBfUElYRUw7Ci0JfSBlbHNlIHsKKwl2YWwg Jj0gfihMQVlFUl9DT01QX01BU0sgfCBMQVlFUl9QTVVMX0VOQUJMRSB8IExBWUVSX0FMUEhBKDB4 ZmYpKTsKIAotCQkvKgotCQkgKiBkbyBub3QgZW5hYmxlIHBpeGVsIGFscGhhIGJsZW5kaW5nIGFz IHRoZSBjb2xvciBjaGFubmVsCi0JCSAqIGRvZXMgbm90IGhhdmUgYW55IGFscGhhIGluZm9ybWF0 aW9uCi0JCSAqLworCWlmIChzdGF0ZS0+YWxwaGEgIT0gRFJNX0JMRU5EX0FMUEhBX09QQVFVRSkg ewogCQl2YWwgfD0gTEFZRVJfQ09NUF9QTEFORTsKLQotCQkvKiBTZXQgbGF5ZXIgYWxwaGEgY29l ZmZpY2llbnQgdG8gMHhmZiBpZSBmdWxseSBvcGFxdWUgKi8KLQkJdmFsIHw9IExBWUVSX0FMUEhB KDB4ZmYpOworCX0gZWxzZSBpZiAoc3RhdGUtPmZiLT5mb3JtYXQtPmhhc19hbHBoYSkgeworCQkv KiBXZSBvbmx5IGNhcmUgYWJvdXQgYmxlbmQgbW9kZSBpZiB0aGUgZm9ybWF0IGhhcyBhbHBoYSAq LworCQlzd2l0Y2ggKHBpeGVsX2FscGhhKSB7CisJCWNhc2UgRFJNX01PREVfQkxFTkRfUFJFTVVM VEk6CisJCQl2YWwgfD0gTEFZRVJfQ09NUF9QSVhFTCB8IExBWUVSX1BNVUxfRU5BQkxFOworCQkJ YnJlYWs7CisJCWNhc2UgRFJNX01PREVfQkxFTkRfQ09WRVJBR0U6CisJCQl2YWwgfD0gTEFZRVJf Q09NUF9QSVhFTDsKKwkJCWJyZWFrOworCQl9CiAJfQorCXZhbCB8PSBMQVlFUl9BTFBIQShwbGFu ZV9hbHBoYSk7CiAKIAl2YWwgJj0gfkxBWUVSX0ZMT1dDRkcoTEFZRVJfRkxPV0NGR19NQVNLKTsK LQlpZiAocGxhbmUtPnN0YXRlLT5jcnRjKSB7CisJaWYgKHN0YXRlLT5jcnRjKSB7CiAJCXN0cnVj dCBtYWxpZHBfY3J0Y19zdGF0ZSAqbSA9Ci0JCQl0b19tYWxpZHBfY3J0Y19zdGF0ZShwbGFuZS0+ c3RhdGUtPmNydGMtPnN0YXRlKTsKKwkJCXRvX21hbGlkcF9jcnRjX3N0YXRlKHN0YXRlLT5jcnRj LT5zdGF0ZSk7CiAKIAkJaWYgKG0tPnNjYWxlcl9jb25maWcuc2NhbGVfZW5hYmxlICYmCiAJCSAg ICBtLT5zY2FsZXJfY29uZmlnLnBsYW5lX3NyY19pZCA9PSBtcC0+bGF5ZXItPmlkKQpAQCAtNDQ2 LDYgKzQ1Miw5IEBAIGludCBtYWxpZHBfZGVfcGxhbmVzX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRybSkKIAl1bnNpZ25lZCBsb25nIGNydGNzID0gMSA8PCBkcm0tPm1vZGVfY29uZmlnLm51bV9j cnRjOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBEUk1fTU9ERV9ST1RBVEVfMCB8IERSTV9NT0RF X1JPVEFURV85MCB8IERSTV9NT0RFX1JPVEFURV8xODAgfAogCQkJICAgICAgRFJNX01PREVfUk9U QVRFXzI3MCB8IERSTV9NT0RFX1JFRkxFQ1RfWCB8IERSTV9NT0RFX1JFRkxFQ1RfWTsKKwl1bnNp Z25lZCBpbnQgYmxlbmRfY2FwcyA9IEJJVChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8CisJ CQkJICBCSVQoRFJNX01PREVfQkxFTkRfUFJFTVVMVEkpICAgfAorCQkJCSAgQklUKERSTV9NT0RF X0JMRU5EX0NPVkVSQUdFKTsKIAl1MzIgKmZvcm1hdHM7CiAJaW50IHJldCwgaSwgaiwgbjsKIApA QCAtNDk4LDYgKzUwNyw5IEBAIGludCBtYWxpZHBfZGVfcGxhbmVzX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRybSkKIAkJbWFsaWRwX2h3X3dyaXRlKG1hbGlkcC0+ZGV2LCBNQUxJRFBfQUxQSEFf TFVULAogCQkJCXBsYW5lLT5sYXllci0+YmFzZSArIE1BTElEUF9MQVlFUl9DT01QT1NFKTsKIAor CQlkcm1fcGxhbmVfY3JlYXRlX2FscGhhX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSk7CisJCWRybV9w bGFuZV9jcmVhdGVfYmxlbmRfbW9kZV9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGJsZW5kX2NhcHMp OworCiAJCS8qIEF0dGFjaCB0aGUgWVVWLT5SR0IgcHJvcGVydHkgb25seSB0byB2aWRlbyBsYXll cnMgKi8KIAkJaWYgKGlkICYgKERFX1ZJREVPMSB8IERFX1ZJREVPMikpIHsKIAkJCS8qIGRlZmF1 bHQgZW5jb2RpbmcgZm9yIFlVVi0+UkdCIGlzIEJUNjAxIE5BUlJPVyAqLwotLSAKMS45LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=