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: Fri, 31 Aug 2018 19:35:30 +0800 Message-ID: <1535715330-25859-1-git-send-email-lowry.li@arm.com> References: <1535013020-23737-3-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 EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20073.outbound.protection.outlook.com [40.107.2.73]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E13B6E0D6 for ; Fri, 31 Aug 2018 11:36:15 +0000 (UTC) In-Reply-To: <1535013020-23737-3-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 cyBvZiBkcm0vbWFsaS1kcCBwYXRjaHNldApDaGFuZ2VzIHNpbmNlIHYzOgogLSBBZGRzIGhhcmR3 YXJlIGxpbWl0YXRpb24gY2hlY2sKQ2hhbmdlcyBzaW5jZSB2NDoKIC0gVXBkYXRlcyBvbiBkcm0v bWFsaWRwLCBoYXJkd2FyZSBsaW1pdGF0aW9uIGNoZWNrIG9ubHkgd2hlbgogICB0aGUgZm9ybWF0 IGhhcyBhbHBoYSBwaXhlbC4KIC0gUmViYXNlcyBvbiBkcm0tbWlzYy1uZXh0LgoKU2lnbmVkLW9m Zi1ieTogTG93cnkgTGkgPGxvd3J5LmxpQGFybS5jb20+CkFja2VkLWJ5OiBMaXZpdSBEdWRhdSA8 bGl2aXUuZHVkYXVAYXJtLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFu ZXMuYyB8IDc1ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0v bWFsaWRwX3BsYW5lcy5jCmluZGV4IDQ5YzM3ZjYuLjk2ZWU0MjkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0v bWFsaWRwX3BsYW5lcy5jCkBAIC0zNiw2ICszNiw3IEBACiAjZGVmaW5lICAgTEFZRVJfQ09NUF9N QVNLCQkoMHgzIDw8IDEyKQogI2RlZmluZSAgIExBWUVSX0NPTVBfUElYRUwJCSgweDMgPDwgMTIp CiAjZGVmaW5lICAgTEFZRVJfQ09NUF9QTEFORQkJKDB4MiA8PCAxMikKKyNkZWZpbmUgICBMQVlF Ul9QTVVMX0VOQUJMRQkJKDB4MSA8PCAxNCkKICNkZWZpbmUgICBMQVlFUl9BTFBIQV9PRkZTRVQJ CSgxNikKICNkZWZpbmUgICBMQVlFUl9BTFBIQV9NQVNLCQkoMHhmZikKICNkZWZpbmUgICBMQVlF Ul9BTFBIQSh4KQkJKCgoeCkgJiBMQVlFUl9BTFBIQV9NQVNLKSA8PCBMQVlFUl9BTFBIQV9PRkZT RVQpCkBAIC0xODAsNiArMTgxLDcgQEAgc3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVfY2hlY2so c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0IG1hbGlkcF9wbGFuZV9zdGF0ZSAqbXMg PSB0b19tYWxpZHBfcGxhbmVfc3RhdGUoc3RhdGUpOwogCWJvb2wgcm90YXRlZCA9IHN0YXRlLT5y b3RhdGlvbiAmIE1BTElEUF9ST1RBVEVEX01BU0s7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmI7CisJdTE2IHBpeGVsX2FscGhhID0gc3RhdGUtPnBpeGVsX2JsZW5kX21vZGU7CiAJaW50IGks IHJldDsKIAogCWlmICghc3RhdGUtPmNydGMgfHwgIXN0YXRlLT5mYikKQEAgLTI0Miw2ICsyNDQs MTIgQEAgc3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVfY2hlY2soc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAJCW1zLT5yb3RtZW1fc2l6ZSA9IHZhbDsKIAl9CiAKKwkvKiBIVyBjYW4ndCBzdXBw b3J0IHBsYW5lICsgcGl4ZWwgYmxlbmRpbmcgKi8KKwlpZiAoKHN0YXRlLT5hbHBoYSAhPSBEUk1f QkxFTkRfQUxQSEFfT1BBUVVFKSAmJgorCSAgICAocGl4ZWxfYWxwaGEgIT0gRFJNX01PREVfQkxF TkRfUElYRUxfTk9ORSkgJiYKKwkgICAgZmItPmZvcm1hdC0+aGFzX2FscGhhKQorCQlyZXR1cm4g LUVJTlZBTDsKKwogCXJldHVybiAwOwogfQogCkBAIC0zMjMsMTcgKzMzMSwxOSBAQCBzdGF0aWMg dm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogewog CXN0cnVjdCBtYWxpZHBfcGxhbmUgKm1wOwogCXN0cnVjdCBtYWxpZHBfcGxhbmVfc3RhdGUgKm1z ID0gdG9fbWFsaWRwX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7CisJc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7CisJdTE2IHBpeGVsX2FscGhhID0gc3RhdGUt PnBpeGVsX2JsZW5kX21vZGU7CisJdTggcGxhbmVfYWxwaGEgPSBzdGF0ZS0+YWxwaGEgPj4gODsK IAl1MzIgc3JjX3csIHNyY19oLCBkZXN0X3csIGRlc3RfaCwgdmFsOwogCWludCBpOwotCWJvb2wg Zm9ybWF0X2hhc19hbHBoYSA9IHBsYW5lLT5zdGF0ZS0+ZmItPmZvcm1hdC0+aGFzX2FscGhhOwog CiAJbXAgPSB0b19tYWxpZHBfcGxhbmUocGxhbmUpOwogCiAJLyogY29udmVydCBzcmMgdmFsdWVz IGZyb20gUTE2IGZpeGVkIHBvaW50IHRvIGludGVnZXIgKi8KLQlzcmNfdyA9IHBsYW5lLT5zdGF0 ZS0+c3JjX3cgPj4gMTY7Ci0Jc3JjX2ggPSBwbGFuZS0+c3RhdGUtPnNyY19oID4+IDE2OwotCWRl c3RfdyA9IHBsYW5lLT5zdGF0ZS0+Y3J0Y193OwotCWRlc3RfaCA9IHBsYW5lLT5zdGF0ZS0+Y3J0 Y19oOworCXNyY193ID0gc3RhdGUtPnNyY193ID4+IDE2OworCXNyY19oID0gc3RhdGUtPnNyY19o ID4+IDE2OworCWRlc3RfdyA9IHN0YXRlLT5jcnRjX3c7CisJZGVzdF9oID0gc3RhdGUtPmNydGNf aDsKIAogCXZhbCA9IG1hbGlkcF9od19yZWFkKG1wLT5od2RldiwgbXAtPmxheWVyLT5iYXNlKTsK IAl2YWwgPSAodmFsICYgfkxBWUVSX0ZPUk1BVF9NQVNLKSB8IG1zLT5mb3JtYXQ7CkBAIC0zNDIs MTQgKzM1MiwxNCBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCWZvciAoaSA9IDA7IGkgPCBtcy0+bl9wbGFuZXM7IGkrKykgewog CQkvKiBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgdGhlIGxheWVyJ3MgcGxhbmUgcmVnaXN0ZXJz ICovCiAJCXUxNiBwdHIgPSBtcC0+bGF5ZXItPnB0ciArIChpIDw8IDQpOwotCQlkbWFfYWRkcl90 IGZiX2FkZHIgPSBkcm1fZmJfY21hX2dldF9nZW1fYWRkcihwbGFuZS0+c3RhdGUtPmZiLAotCQkJ CQkJCSAgICAgcGxhbmUtPnN0YXRlLCBpKTsKKwkJZG1hX2FkZHJfdCBmYl9hZGRyID0gZHJtX2Zi X2NtYV9nZXRfZ2VtX2FkZHIoc3RhdGUtPmZiLAorCQkJCQkJCSAgICAgc3RhdGUsIGkpOwogCiAJ CW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIGxvd2VyXzMyX2JpdHMoZmJfYWRkciksIHB0cik7 CiAJCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIHVwcGVyXzMyX2JpdHMoZmJfYWRkciksIHB0 ciArIDQpOwogCX0KIAltYWxpZHBfZGVfc2V0X3BsYW5lX3BpdGNoZXMobXAsIG1zLT5uX3BsYW5l cywKLQkJCQkgICAgcGxhbmUtPnN0YXRlLT5mYi0+cGl0Y2hlcyk7CisJCQkJICAgIHN0YXRlLT5m Yi0+cGl0Y2hlcyk7CiAKIAlpZiAoKHBsYW5lLT5zdGF0ZS0+Y29sb3JfZW5jb2RpbmcgIT0gb2xk X3N0YXRlLT5jb2xvcl9lbmNvZGluZykgfHwKIAkgICAgKHBsYW5lLT5zdGF0ZS0+Y29sb3JfcmFu Z2UgIT0gb2xkX3N0YXRlLT5jb2xvcl9yYW5nZSkpCkBAIC0zNjIsOCArMzcyLDggQEAgc3RhdGlj IHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlt YWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBMQVlFUl9IX1ZBTChkZXN0X3cpIHwgTEFZRVJfVl9W QUwoZGVzdF9oKSwKIAkJCW1wLT5sYXllci0+YmFzZSArIE1BTElEUF9MQVlFUl9DT01QX1NJWkUp OwogCi0JbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgTEFZRVJfSF9WQUwocGxhbmUtPnN0YXRl LT5jcnRjX3gpIHwKLQkJCUxBWUVSX1ZfVkFMKHBsYW5lLT5zdGF0ZS0+Y3J0Y195KSwKKwltYWxp ZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBMQVlFUl9IX1ZBTChzdGF0ZS0+Y3J0Y194KSB8CisJCQlM QVlFUl9WX1ZBTChzdGF0ZS0+Y3J0Y195KSwKIAkJCW1wLT5sYXllci0+YmFzZSArIE1BTElEUF9M QVlFUl9PRkZTRVQpOwogCiAJaWYgKG1wLT5sYXllci0+aWQgPT0gREVfU01BUlQpCkBAIC0zNzYs MzggKzM4NiwzNSBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCXZhbCAmPSB+TEFZRVJfUk9UX01BU0s7CiAKIAkvKiBzZXR1cCB0 aGUgcm90YXRpb24gYW5kIGF4aXMgZmxpcCBiaXRzICovCi0JaWYgKHBsYW5lLT5zdGF0ZS0+cm90 YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfTUFTSykKKwlpZiAoc3RhdGUtPnJvdGF0aW9uICYgRFJN X01PREVfUk9UQVRFX01BU0spCiAJCXZhbCB8PSBpbG9nMihwbGFuZS0+c3RhdGUtPnJvdGF0aW9u ICYgRFJNX01PREVfUk9UQVRFX01BU0spIDw8CiAJCSAgICAgICBMQVlFUl9ST1RfT0ZGU0VUOwot CWlmIChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uICYgRFJNX01PREVfUkVGTEVDVF9YKQorCWlmIChz dGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1gpCiAJCXZhbCB8PSBMQVlFUl9IX0ZM SVA7Ci0JaWYgKHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1kpCisJ aWYgKHN0YXRlLT5yb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxFQ1RfWSkKIAkJdmFsIHw9IExBWUVS X1ZfRkxJUDsKIAotCXZhbCAmPSB+TEFZRVJfQ09NUF9NQVNLOwotCWlmIChmb3JtYXRfaGFzX2Fs cGhhKSB7Ci0KLQkJLyoKLQkJICogYWx3YXlzIGVuYWJsZSBwaXhlbCBhbHBoYSBibGVuZGluZyB1 bnRpbCB3ZSBoYXZlIGEgd2F5Ci0JCSAqIHRvIGNoYW5nZSBibGVuZCBtb2RlcwotCQkgKi8KLQkJ dmFsIHw9IExBWUVSX0NPTVBfUElYRUw7Ci0JfSBlbHNlIHsKKwl2YWwgJj0gfihMQVlFUl9DT01Q X01BU0sgfCBMQVlFUl9QTVVMX0VOQUJMRSB8IExBWUVSX0FMUEhBKDB4ZmYpKTsKIAotCQkvKgot CQkgKiBkbyBub3QgZW5hYmxlIHBpeGVsIGFscGhhIGJsZW5kaW5nIGFzIHRoZSBjb2xvciBjaGFu bmVsCi0JCSAqIGRvZXMgbm90IGhhdmUgYW55IGFscGhhIGluZm9ybWF0aW9uCi0JCSAqLworCWlm IChzdGF0ZS0+YWxwaGEgIT0gRFJNX0JMRU5EX0FMUEhBX09QQVFVRSkgewogCQl2YWwgfD0gTEFZ RVJfQ09NUF9QTEFORTsKLQotCQkvKiBTZXQgbGF5ZXIgYWxwaGEgY29lZmZpY2llbnQgdG8gMHhm ZiBpZSBmdWxseSBvcGFxdWUgKi8KLQkJdmFsIHw9IExBWUVSX0FMUEhBKDB4ZmYpOworCX0gZWxz ZSBpZiAoc3RhdGUtPmZiLT5mb3JtYXQtPmhhc19hbHBoYSkgeworCQkvKiBXZSBvbmx5IGNhcmUg YWJvdXQgYmxlbmQgbW9kZSBpZiB0aGUgZm9ybWF0IGhhcyBhbHBoYSAqLworCQlzd2l0Y2ggKHBp eGVsX2FscGhhKSB7CisJCWNhc2UgRFJNX01PREVfQkxFTkRfUFJFTVVMVEk6CisJCQl2YWwgfD0g TEFZRVJfQ09NUF9QSVhFTCB8IExBWUVSX1BNVUxfRU5BQkxFOworCQkJYnJlYWs7CisJCWNhc2Ug RFJNX01PREVfQkxFTkRfQ09WRVJBR0U6CisJCQl2YWwgfD0gTEFZRVJfQ09NUF9QSVhFTDsKKwkJ CWJyZWFrOworCQl9CiAJfQorCXZhbCB8PSBMQVlFUl9BTFBIQShwbGFuZV9hbHBoYSk7CiAKIAl2 YWwgJj0gfkxBWUVSX0ZMT1dDRkcoTEFZRVJfRkxPV0NGR19NQVNLKTsKLQlpZiAocGxhbmUtPnN0 YXRlLT5jcnRjKSB7CisJaWYgKHN0YXRlLT5jcnRjKSB7CiAJCXN0cnVjdCBtYWxpZHBfY3J0Y19z dGF0ZSAqbSA9Ci0JCQl0b19tYWxpZHBfY3J0Y19zdGF0ZShwbGFuZS0+c3RhdGUtPmNydGMtPnN0 YXRlKTsKKwkJCXRvX21hbGlkcF9jcnRjX3N0YXRlKHN0YXRlLT5jcnRjLT5zdGF0ZSk7CiAKIAkJ aWYgKG0tPnNjYWxlcl9jb25maWcuc2NhbGVfZW5hYmxlICYmCiAJCSAgICBtLT5zY2FsZXJfY29u ZmlnLnBsYW5lX3NyY19pZCA9PSBtcC0+bGF5ZXItPmlkKQpAQCAtNDQ2LDYgKzQ1Myw5IEBAIGlu dCBtYWxpZHBfZGVfcGxhbmVzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIAl1bnNpZ25l ZCBsb25nIGNydGNzID0gMSA8PCBkcm0tPm1vZGVfY29uZmlnLm51bV9jcnRjOwogCXVuc2lnbmVk IGxvbmcgZmxhZ3MgPSBEUk1fTU9ERV9ST1RBVEVfMCB8IERSTV9NT0RFX1JPVEFURV85MCB8IERS TV9NT0RFX1JPVEFURV8xODAgfAogCQkJICAgICAgRFJNX01PREVfUk9UQVRFXzI3MCB8IERSTV9N T0RFX1JFRkxFQ1RfWCB8IERSTV9NT0RFX1JFRkxFQ1RfWTsKKwl1bnNpZ25lZCBpbnQgYmxlbmRf Y2FwcyA9IEJJVChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8CisJCQkJICBCSVQoRFJNX01P REVfQkxFTkRfUFJFTVVMVEkpICAgfAorCQkJCSAgQklUKERSTV9NT0RFX0JMRU5EX0NPVkVSQUdF KTsKIAl1MzIgKmZvcm1hdHM7CiAJaW50IHJldCwgaSwgaiwgbjsKIApAQCAtNDk4LDYgKzUwOCw5 IEBAIGludCBtYWxpZHBfZGVfcGxhbmVzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIAkJ bWFsaWRwX2h3X3dyaXRlKG1hbGlkcC0+ZGV2LCBNQUxJRFBfQUxQSEFfTFVULAogCQkJCXBsYW5l LT5sYXllci0+YmFzZSArIE1BTElEUF9MQVlFUl9DT01QT1NFKTsKIAorCQlkcm1fcGxhbmVfY3Jl YXRlX2FscGhhX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSk7CisJCWRybV9wbGFuZV9jcmVhdGVfYmxl bmRfbW9kZV9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGJsZW5kX2NhcHMpOworCiAJCS8qIEF0dGFj aCB0aGUgWVVWLT5SR0IgcHJvcGVydHkgb25seSB0byB2aWRlbyBsYXllcnMgKi8KIAkJaWYgKGlk ICYgKERFX1ZJREVPMSB8IERFX1ZJREVPMikpIHsKIAkJCS8qIGRlZmF1bHQgZW5jb2RpbmcgZm9y IFlVVi0+UkdCIGlzIEJUNjAxIE5BUlJPVyAqLwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=