From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lowry Li Subject: [PATCH v3 2/2] drm/mali-dp: Implement plane alpha and pixel blend on malidp Date: Fri, 1 Jun 2018 20:41:11 +0800 Message-ID: <1527856871-3007-3-git-send-email-lowry.li@arm.com> References: <1527856871-3007-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 EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50063.outbound.protection.outlook.com [40.107.5.63]) by gabe.freedesktop.org (Postfix) with ESMTPS id 59F236E652 for ; Fri, 1 Jun 2018 12:42:03 +0000 (UTC) In-Reply-To: <1527856871-3007-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, malidp@foss.arm.com, daniel.vetter@intel.com, nd@arm.com List-Id: dri-devel@lists.freedesktop.org MS4gQ2hlY2sgdGhlIHBpeGVsIGJsZW5kaW5nIG1vZGUgYW5kIHBsYW5lIGFscGhhIHZhbHVlIHdo ZW4KZG8gdGhlIHBsYW5lX2NoZWNrLiBNYWxpIERQIHN1cHBvcnRzIGJsZW5kaW5nIHRoZSBjdXJy ZW50IHBsYW5lCndpdGggdGhlIGJhY2tncm91bmQgZWl0aGVyIGJhc2VkIG9uIHRoZSBwaXhlbCBh bHBoYSBibGVuZGluZwptb2RlIG9yIGJ5IHVzaW5nIHRoZSBsYXllcidzIGFscGhhIHZhbHVlLCBi dXQgbm90IGJvdGggYXQgdGhlCnNhbWUgdGltZS4gSWYgYm90aCBjYXNlLCBwbGFuZV9jaGVjayB3 aWxsIHJldHVybiBmYWlsZWQuCgoyLiBTZXQgdGhlIEhXIHdoZW4gZG9pbmcgcGxhbmVfdXBkYXRl IGFjY29yZGluZ2x5LiBJZiBwbGFuZSBhbHBoYQppcyB0aGUgMHhmZmZmLCBzZXQgdGhlIHBpeGVs IGJsZW5kaW5nIGJpdHMgYWNjb3JkaW5nbHkuIElmIG5vdAp3ZSdkIHNldCBBTFBIQSBiaXQgYXMg emVybyBhbmQgbGF5ZXIgYWxwaGEgdmFsdWUuCgpTaWduZWQtb2ZmLWJ5OiBMb3dyeSBMaSA8bG93 cnkubGlAYXJtLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyB8 IDc2ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0NCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRw X3BsYW5lcy5jCmluZGV4IDdhNDQ4OTcuLmRhYTNmNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRw X3BsYW5lcy5jCkBAIC0zNSw2ICszNSw3IEBACiAjZGVmaW5lICAgTEFZRVJfQ09NUF9NQVNLCQko MHgzIDw8IDEyKQogI2RlZmluZSAgIExBWUVSX0NPTVBfUElYRUwJCSgweDMgPDwgMTIpCiAjZGVm aW5lICAgTEFZRVJfQ09NUF9QTEFORQkJKDB4MiA8PCAxMikKKyNkZWZpbmUgICBMQVlFUl9QTVVM X0VOQUJMRQkJKDB4MSA8PCAxNCkKICNkZWZpbmUgICBMQVlFUl9BTFBIQV9PRkZTRVQJCSgxNikK ICNkZWZpbmUgICBMQVlFUl9BTFBIQV9NQVNLCQkoMHhmZikKICNkZWZpbmUgICBMQVlFUl9BTFBI QSh4KQkJKCgoeCkgJiBMQVlFUl9BTFBIQV9NQVNLKSA8PCBMQVlFUl9BTFBIQV9PRkZTRVQpCkBA IC0xODIsNiArMTgzLDcgQEAgc3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVfY2hlY2soc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0IG1hbGlkcF9wbGFuZV9zdGF0ZSAqbXMgPSB0b19t YWxpZHBfcGxhbmVfc3RhdGUoc3RhdGUpOwogCWJvb2wgcm90YXRlZCA9IHN0YXRlLT5yb3RhdGlv biAmIE1BTElEUF9ST1RBVEVEX01BU0s7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CisJ dTE2IHBpeGVsX2FscGhhID0gc3RhdGUtPnBpeGVsX2JsZW5kX21vZGU7CiAJaW50IGksIHJldDsK IAogCWlmICghc3RhdGUtPmNydGMgfHwgIXN0YXRlLT5mYikKQEAgLTI0NCw2ICsyNDYsMTEgQEAg c3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJCW1zLT5yb3RtZW1fc2l6ZSA9IHZhbDsKIAl9CiAKKwkvKiBIVyBjYW4ndCBzdXBwb3J0IHBs YW5lICsgcGl4ZWwgYmxlbmRpbmcgKi8KKwlpZiAoKHN0YXRlLT5hbHBoYSAhPSBEUk1fQkxFTkRf QUxQSEFfT1BBUVVFKSAmJgorCSAgICAocGl4ZWxfYWxwaGEgIT0gRFJNX01PREVfQkxFTkRfUElY RUxfTk9ORSkpCisJCXJldHVybiAtRUlOVkFMOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTMyNSwz MSArMzMyLDMzIEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9kZV9wbGFuZV91cGRhdGUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiB7CiAJc3RydWN0IG1hbGlkcF9wbGFuZSAqbXA7CiAJc3RydWN0IG1h bGlkcF9wbGFuZV9zdGF0ZSAqbXMgPSB0b19tYWxpZHBfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRl KTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKKwl1MTYg cGl4ZWxfYWxwaGEgPSBzdGF0ZS0+cGl4ZWxfYmxlbmRfbW9kZTsKKwl1OCBwbGFuZV9hbHBoYSA9 IHN0YXRlLT5hbHBoYSA+PiA4OwogCXUzMiBzcmNfdywgc3JjX2gsIGRlc3RfdywgZGVzdF9oLCB2 YWw7CiAJaW50IGk7Ci0JYm9vbCBmb3JtYXRfaGFzX2FscGhhID0gcGxhbmUtPnN0YXRlLT5mYi0+ Zm9ybWF0LT5oYXNfYWxwaGE7CiAKIAltcCA9IHRvX21hbGlkcF9wbGFuZShwbGFuZSk7CiAKIAkv KiBjb252ZXJ0IHNyYyB2YWx1ZXMgZnJvbSBRMTYgZml4ZWQgcG9pbnQgdG8gaW50ZWdlciAqLwot CXNyY193ID0gcGxhbmUtPnN0YXRlLT5zcmNfdyA+PiAxNjsKLQlzcmNfaCA9IHBsYW5lLT5zdGF0 ZS0+c3JjX2ggPj4gMTY7Ci0JZGVzdF93ID0gcGxhbmUtPnN0YXRlLT5jcnRjX3c7Ci0JZGVzdF9o ID0gcGxhbmUtPnN0YXRlLT5jcnRjX2g7CisJc3JjX3cgPSBzdGF0ZS0+c3JjX3cgPj4gMTY7CisJ c3JjX2ggPSBzdGF0ZS0+c3JjX2ggPj4gMTY7CisJZGVzdF93ID0gc3RhdGUtPmNydGNfdzsKKwlk ZXN0X2ggPSBzdGF0ZS0+Y3J0Y19oOwogCiAJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgbXMt PmZvcm1hdCwgbXAtPmxheWVyLT5iYXNlKTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcy0+bl9wbGFu ZXM7IGkrKykgewogCQkvKiBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgdGhlIGxheWVyJ3MgcGxh bmUgcmVnaXN0ZXJzICovCiAJCXUxNiBwdHIgPSBtcC0+bGF5ZXItPnB0ciArIChpIDw8IDQpOwot CQlkbWFfYWRkcl90IGZiX2FkZHIgPSBkcm1fZmJfY21hX2dldF9nZW1fYWRkcihwbGFuZS0+c3Rh dGUtPmZiLAotCQkJCQkJCSAgICAgcGxhbmUtPnN0YXRlLCBpKTsKKwkJZG1hX2FkZHJfdCBmYl9h ZGRyID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX2FkZHIoc3RhdGUtPmZiLAorCQkJCQkJCSAgICAgc3Rh dGUsIGkpOwogCiAJCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIGxvd2VyXzMyX2JpdHMoZmJf YWRkciksIHB0cik7CiAJCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIHVwcGVyXzMyX2JpdHMo ZmJfYWRkciksIHB0ciArIDQpOwogCX0KIAltYWxpZHBfZGVfc2V0X3BsYW5lX3BpdGNoZXMobXAs IG1zLT5uX3BsYW5lcywKLQkJCQkgICAgcGxhbmUtPnN0YXRlLT5mYi0+cGl0Y2hlcyk7CisJCQkJ ICAgIHN0YXRlLT5mYi0+cGl0Y2hlcyk7CiAKIAlpZiAoKHBsYW5lLT5zdGF0ZS0+Y29sb3JfZW5j b2RpbmcgIT0gb2xkX3N0YXRlLT5jb2xvcl9lbmNvZGluZykgfHwKIAkgICAgKHBsYW5lLT5zdGF0 ZS0+Y29sb3JfcmFuZ2UgIT0gb2xkX3N0YXRlLT5jb2xvcl9yYW5nZSkpCkBAIC0zNjIsOCArMzcx LDggQEAgc3RhdGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBMQVlFUl9IX1ZBTChkZXN0X3cp IHwgTEFZRVJfVl9WQUwoZGVzdF9oKSwKIAkJCW1wLT5sYXllci0+YmFzZSArIE1BTElEUF9MQVlF Ul9DT01QX1NJWkUpOwogCi0JbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgTEFZRVJfSF9WQUwo cGxhbmUtPnN0YXRlLT5jcnRjX3gpIHwKLQkJCUxBWUVSX1ZfVkFMKHBsYW5lLT5zdGF0ZS0+Y3J0 Y195KSwKKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBMQVlFUl9IX1ZBTChzdGF0ZS0+Y3J0 Y194KSB8CisJCQlMQVlFUl9WX1ZBTChzdGF0ZS0+Y3J0Y195KSwKIAkJCW1wLT5sYXllci0+YmFz ZSArIE1BTElEUF9MQVlFUl9PRkZTRVQpOwogCiAJaWYgKG1wLT5sYXllci0+aWQgPT0gREVfU01B UlQpCkBAIC0zNzYsMzggKzM4NSwzNSBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBk YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXZhbCAmPSB+TEFZRVJfUk9UX01BU0s7CiAK IAkvKiBzZXR1cCB0aGUgcm90YXRpb24gYW5kIGF4aXMgZmxpcCBiaXRzICovCi0JaWYgKHBsYW5l LT5zdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfTUFTSykKKwlpZiAoc3RhdGUtPnJv dGF0aW9uICYgRFJNX01PREVfUk9UQVRFX01BU0spCiAJCXZhbCB8PSBpbG9nMihwbGFuZS0+c3Rh dGUtPnJvdGF0aW9uICYgRFJNX01PREVfUk9UQVRFX01BU0spIDw8CiAJCSAgICAgICBMQVlFUl9S T1RfT0ZGU0VUOwotCWlmIChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uICYgRFJNX01PREVfUkVGTEVD VF9YKQorCWlmIChzdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1gpCiAJCXZhbCB8 PSBMQVlFUl9IX0ZMSVA7Ci0JaWYgKHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9S RUZMRUNUX1kpCisJaWYgKHN0YXRlLT5yb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxFQ1RfWSkKIAkJ dmFsIHw9IExBWUVSX1ZfRkxJUDsKIAotCXZhbCAmPSB+TEFZRVJfQ09NUF9NQVNLOwotCWlmIChm b3JtYXRfaGFzX2FscGhhKSB7Ci0KLQkJLyoKLQkJICogYWx3YXlzIGVuYWJsZSBwaXhlbCBhbHBo YSBibGVuZGluZyB1bnRpbCB3ZSBoYXZlIGEgd2F5Ci0JCSAqIHRvIGNoYW5nZSBibGVuZCBtb2Rl cwotCQkgKi8KLQkJdmFsIHw9IExBWUVSX0NPTVBfUElYRUw7Ci0JfSBlbHNlIHsKLQotCQkvKgot CQkgKiBkbyBub3QgZW5hYmxlIHBpeGVsIGFscGhhIGJsZW5kaW5nIGFzIHRoZSBjb2xvciBjaGFu bmVsCi0JCSAqIGRvZXMgbm90IGhhdmUgYW55IGFscGhhIGluZm9ybWF0aW9uCi0JCSAqLwotCQl2 YWwgfD0gTEFZRVJfQ09NUF9QTEFORTsKLQotCQkvKiBTZXQgbGF5ZXIgYWxwaGEgY29lZmZpY2ll bnQgdG8gMHhmZiBpZSBmdWxseSBvcGFxdWUgKi8KKwl2YWwgJj0gfihMQVlFUl9DT01QX01BU0sg fCBMQVlFUl9QTVVMX0VOQUJMRSk7CisKKwlpZiAoc3RhdGUtPmFscGhhICE9IERSTV9CTEVORF9B TFBIQV9PUEFRVUUpIHsKKwkJdmFsIHw9IExBWUVSX0NPTVBfUExBTkUgfCBMQVlFUl9BTFBIQShw bGFuZV9hbHBoYSk7CisJfSBlbHNlIGlmIChzdGF0ZS0+ZmItPmZvcm1hdC0+aGFzX2FscGhhKSB7 CisJCS8qIFdlIG9ubHkgY2FyZSBhYm91dCBibGVuZCBtb2RlIGlmIHRoZSBmb3JtYXQgaGFzIGFs cGhhICovCisJCXN3aXRjaCAocGl4ZWxfYWxwaGEpIHsKKwkJY2FzZSBEUk1fTU9ERV9CTEVORF9Q UkVNVUxUSToKKwkJCXZhbCB8PSBMQVlFUl9DT01QX1BJWEVMIHwgTEFZRVJfUE1VTF9FTkFCTEU7 CisJCQlicmVhazsKKwkJY2FzZSBEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRToKKwkJCXZhbCB8PSBM QVlFUl9DT01QX1BJWEVMOworCQkJYnJlYWs7CisJCX0KIAkJdmFsIHw9IExBWUVSX0FMUEhBKDB4 ZmYpOwogCX0KIAogCXZhbCAmPSB+TEFZRVJfRkxPV0NGRyhMQVlFUl9GTE9XQ0ZHX01BU0spOwot CWlmIChwbGFuZS0+c3RhdGUtPmNydGMpIHsKKwlpZiAoc3RhdGUtPmNydGMpIHsKIAkJc3RydWN0 IG1hbGlkcF9jcnRjX3N0YXRlICptID0KLQkJCXRvX21hbGlkcF9jcnRjX3N0YXRlKHBsYW5lLT5z dGF0ZS0+Y3J0Yy0+c3RhdGUpOworCQkJdG9fbWFsaWRwX2NydGNfc3RhdGUoc3RhdGUtPmNydGMt PnN0YXRlKTsKIAogCQlpZiAobS0+c2NhbGVyX2NvbmZpZy5zY2FsZV9lbmFibGUgJiYKIAkJICAg IG0tPnNjYWxlcl9jb25maWcucGxhbmVfc3JjX2lkID09IG1wLT5sYXllci0+aWQpCkBAIC00NDYs NiArNDUyLDkgQEAgaW50IG1hbGlkcF9kZV9wbGFuZXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtKQogCXVuc2lnbmVkIGxvbmcgY3J0Y3MgPSAxIDw8IGRybS0+bW9kZV9jb25maWcubnVtX2Ny dGM7CiAJdW5zaWduZWQgbG9uZyBmbGFncyA9IERSTV9NT0RFX1JPVEFURV8wIHwgRFJNX01PREVf Uk9UQVRFXzkwIHwgRFJNX01PREVfUk9UQVRFXzE4MCB8CiAJCQkgICAgICBEUk1fTU9ERV9ST1RB VEVfMjcwIHwgRFJNX01PREVfUkVGTEVDVF9YIHwgRFJNX01PREVfUkVGTEVDVF9ZOworCXVuc2ln bmVkIGludCBibGVuZF9jYXBzID0gQklUKERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUpIHwKKwkJ CQkgIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgICB8CisJCQkJICBCSVQoRFJNX01PREVf QkxFTkRfQ09WRVJBR0UpOwogCXUzMiAqZm9ybWF0czsKIAlpbnQgcmV0LCBpLCBqLCBuOwogCkBA IC00OTgsNiArNTA3LDkgQEAgaW50IG1hbGlkcF9kZV9wbGFuZXNfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtKQogCQltYWxpZHBfaHdfd3JpdGUobWFsaWRwLT5kZXYsIE1BTElEUF9BTFBIQV9M VVQsCiAJCQkJcGxhbmUtPmxheWVyLT5iYXNlICsgTUFMSURQX0xBWUVSX0NPTVBPU0UpOwogCisJ CWRybV9wbGFuZV9jcmVhdGVfYWxwaGFfcHJvcGVydHkoJnBsYW5lLT5iYXNlKTsKKwkJZHJtX3Bs YW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgYmxlbmRfY2Fwcyk7 CisKIAkJLyogQXR0YWNoIHRoZSBZVVYtPlJHQiBwcm9wZXJ0eSBvbmx5IHRvIHZpZGVvIGxheWVy cyAqLwogCQlpZiAoaWQgJiAoREVfVklERU8xIHwgREVfVklERU8yKSkgewogCQkJLyogZGVmYXVs dCBlbmNvZGluZyBmb3IgWVVWLT5SR0IgaXMgQlQ2MDEgTkFSUk9XICovCi0tIAoxLjkuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==