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, 30 Aug 2018 18:53:01 +0800 Message-ID: <1535626381-3578-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 EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0624.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe02::624]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5A5A96E714 for ; Thu, 30 Aug 2018 10:54:03 +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 cyBvZiBkcm0vbWFsaS1kcCBwYXRjaHNldApDaGFuZ2VzIHNpbmNlIHYzOgogLSBVcGRhdGVzIG9u IGRybS9tYWxpZHAsIGhhcmR3YXJlIGxpbWl0YXRpb24gY2hlY2sgb25seSB3aGVuCiAgIHRoZSBm b3JtYXQgaGFzIGFscGhhIHBpeGVsLgpDaGFuZ2VzIHNpbmNlIHY0OgogLSBSZWJhc2VzIG9uIGRy bS1taXNjLW5leHQuCgpTaWduZWQtb2ZmLWJ5OiBMb3dyeSBMaSA8bG93cnkubGlAYXJtLmNvbT4K QWNrZWQtYnk6IExpdml1IER1ZGF1IDxsaXZpdS5kdWRhdUBhcm0uY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDMxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5j IGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKaW5kZXggNDljMzdmNi4uOTZl ZTQyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKQEAgLTM2LDYgKzM2LDcgQEAK ICNkZWZpbmUgICBMQVlFUl9DT01QX01BU0sJCSgweDMgPDwgMTIpCiAjZGVmaW5lICAgTEFZRVJf Q09NUF9QSVhFTAkJKDB4MyA8PCAxMikKICNkZWZpbmUgICBMQVlFUl9DT01QX1BMQU5FCQkoMHgy IDw8IDEyKQorI2RlZmluZSAgIExBWUVSX1BNVUxfRU5BQkxFCQkoMHgxIDw8IDE0KQogI2RlZmlu ZSAgIExBWUVSX0FMUEhBX09GRlNFVAkJKDE2KQogI2RlZmluZSAgIExBWUVSX0FMUEhBX01BU0sJ CSgweGZmKQogI2RlZmluZSAgIExBWUVSX0FMUEhBKHgpCQkoKCh4KSAmIExBWUVSX0FMUEhBX01B U0spIDw8IExBWUVSX0FMUEhBX09GRlNFVCkKQEAgLTE4MCw2ICsxODEsNyBAQCBzdGF0aWMgaW50 IG1hbGlkcF9kZV9wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3Qg bWFsaWRwX3BsYW5lX3N0YXRlICptcyA9IHRvX21hbGlkcF9wbGFuZV9zdGF0ZShzdGF0ZSk7CiAJ Ym9vbCByb3RhdGVkID0gc3RhdGUtPnJvdGF0aW9uICYgTUFMSURQX1JPVEFURURfTUFTSzsKIAlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKKwl1MTYgcGl4ZWxfYWxwaGEgPSBzdGF0ZS0+cGl4 ZWxfYmxlbmRfbW9kZTsKIAlpbnQgaSwgcmV0OwogCiAJaWYgKCFzdGF0ZS0+Y3J0YyB8fCAhc3Rh dGUtPmZiKQpAQCAtMjQyLDYgKzI0NCwxMiBAQCBzdGF0aWMgaW50IG1hbGlkcF9kZV9wbGFuZV9j aGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJbXMtPnJvdG1lbV9zaXplID0gdmFsOwog CX0KIAorCS8qIEhXIGNhbid0IHN1cHBvcnQgcGxhbmUgKyBwaXhlbCBibGVuZGluZyAqLworCWlm ICgoc3RhdGUtPmFscGhhICE9IERSTV9CTEVORF9BTFBIQV9PUEFRVUUpICYmCisJICAgIChwaXhl bF9hbHBoYSAhPSBEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSAmJgorCSAgICBmYi0+Zm9ybWF0 LT5oYXNfYWxwaGEpCisJCXJldHVybiAtRUlOVkFMOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTMy MywxNyArMzMxLDE5IEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9kZV9wbGFuZV91cGRhdGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiB7CiAJc3RydWN0IG1hbGlkcF9wbGFuZSAqbXA7CiAJc3RydWN0 IG1hbGlkcF9wbGFuZV9zdGF0ZSAqbXMgPSB0b19tYWxpZHBfcGxhbmVfc3RhdGUocGxhbmUtPnN0 YXRlKTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKKwl1 MTYgcGl4ZWxfYWxwaGEgPSBzdGF0ZS0+cGl4ZWxfYmxlbmRfbW9kZTsKKwl1OCBwbGFuZV9hbHBo YSA9IHN0YXRlLT5hbHBoYSA+PiA4OwogCXUzMiBzcmNfdywgc3JjX2gsIGRlc3RfdywgZGVzdF9o LCB2YWw7CiAJaW50IGk7Ci0JYm9vbCBmb3JtYXRfaGFzX2FscGhhID0gcGxhbmUtPnN0YXRlLT5m Yi0+Zm9ybWF0LT5oYXNfYWxwaGE7CiAKIAltcCA9IHRvX21hbGlkcF9wbGFuZShwbGFuZSk7CiAK IAkvKiBjb252ZXJ0IHNyYyB2YWx1ZXMgZnJvbSBRMTYgZml4ZWQgcG9pbnQgdG8gaW50ZWdlciAq LwotCXNyY193ID0gcGxhbmUtPnN0YXRlLT5zcmNfdyA+PiAxNjsKLQlzcmNfaCA9IHBsYW5lLT5z dGF0ZS0+c3JjX2ggPj4gMTY7Ci0JZGVzdF93ID0gcGxhbmUtPnN0YXRlLT5jcnRjX3c7Ci0JZGVz dF9oID0gcGxhbmUtPnN0YXRlLT5jcnRjX2g7CisJc3JjX3cgPSBzdGF0ZS0+c3JjX3cgPj4gMTY7 CisJc3JjX2ggPSBzdGF0ZS0+c3JjX2ggPj4gMTY7CisJZGVzdF93ID0gc3RhdGUtPmNydGNfdzsK KwlkZXN0X2ggPSBzdGF0ZS0+Y3J0Y19oOwogCiAJdmFsID0gbWFsaWRwX2h3X3JlYWQobXAtPmh3 ZGV2LCBtcC0+bGF5ZXItPmJhc2UpOwogCXZhbCA9ICh2YWwgJiB+TEFZRVJfRk9STUFUX01BU0sp IHwgbXMtPmZvcm1hdDsKQEAgLTM0MiwxNCArMzUyLDE0IEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9k ZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJZm9yIChpID0gMDsgaSA8 IG1zLT5uX3BsYW5lczsgaSsrKSB7CiAJCS8qIGNhbGN1bGF0ZSB0aGUgb2Zmc2V0IGZvciB0aGUg bGF5ZXIncyBwbGFuZSByZWdpc3RlcnMgKi8KIAkJdTE2IHB0ciA9IG1wLT5sYXllci0+cHRyICsg KGkgPDwgNCk7Ci0JCWRtYV9hZGRyX3QgZmJfYWRkciA9IGRybV9mYl9jbWFfZ2V0X2dlbV9hZGRy KHBsYW5lLT5zdGF0ZS0+ZmIsCi0JCQkJCQkJICAgICBwbGFuZS0+c3RhdGUsIGkpOworCQlkbWFf YWRkcl90IGZiX2FkZHIgPSBkcm1fZmJfY21hX2dldF9nZW1fYWRkcihzdGF0ZS0+ZmIsCisJCQkJ CQkJICAgICBzdGF0ZSwgaSk7CiAKIAkJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgbG93ZXJf MzJfYml0cyhmYl9hZGRyKSwgcHRyKTsKIAkJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgdXBw ZXJfMzJfYml0cyhmYl9hZGRyKSwgcHRyICsgNCk7CiAJfQogCW1hbGlkcF9kZV9zZXRfcGxhbmVf cGl0Y2hlcyhtcCwgbXMtPm5fcGxhbmVzLAotCQkJCSAgICBwbGFuZS0+c3RhdGUtPmZiLT5waXRj aGVzKTsKKwkJCQkgICAgc3RhdGUtPmZiLT5waXRjaGVzKTsKIAogCWlmICgocGxhbmUtPnN0YXRl LT5jb2xvcl9lbmNvZGluZyAhPSBvbGRfc3RhdGUtPmNvbG9yX2VuY29kaW5nKSB8fAogCSAgICAo cGxhbmUtPnN0YXRlLT5jb2xvcl9yYW5nZSAhPSBvbGRfc3RhdGUtPmNvbG9yX3JhbmdlKSkKQEAg LTM2Miw4ICszNzIsOCBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIExBWUVSX0hf VkFMKGRlc3RfdykgfCBMQVlFUl9WX1ZBTChkZXN0X2gpLAogCQkJbXAtPmxheWVyLT5iYXNlICsg TUFMSURQX0xBWUVSX0NPTVBfU0laRSk7CiAKLQltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCBM QVlFUl9IX1ZBTChwbGFuZS0+c3RhdGUtPmNydGNfeCkgfAotCQkJTEFZRVJfVl9WQUwocGxhbmUt PnN0YXRlLT5jcnRjX3kpLAorCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIExBWUVSX0hfVkFM KHN0YXRlLT5jcnRjX3gpIHwKKwkJCUxBWUVSX1ZfVkFMKHN0YXRlLT5jcnRjX3kpLAogCQkJbXAt PmxheWVyLT5iYXNlICsgTUFMSURQX0xBWUVSX09GRlNFVCk7CiAKIAlpZiAobXAtPmxheWVyLT5p ZCA9PSBERV9TTUFSVCkKQEAgLTM3NiwzOCArMzg2LDM1IEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9k ZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJdmFsICY9IH5MQVlFUl9S T1RfTUFTSzsKIAogCS8qIHNldHVwIHRoZSByb3RhdGlvbiBhbmQgYXhpcyBmbGlwIGJpdHMgKi8K LQlpZiAocGxhbmUtPnN0YXRlLT5yb3RhdGlvbiAmIERSTV9NT0RFX1JPVEFURV9NQVNLKQorCWlm IChzdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfTUFTSykKIAkJdmFsIHw9IGlsb2cy KHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfTUFTSykgPDwKIAkJICAg ICAgIExBWUVSX1JPVF9PRkZTRVQ7Ci0JaWYgKHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gJiBEUk1f TU9ERV9SRUZMRUNUX1gpCisJaWYgKHN0YXRlLT5yb3RhdGlvbiAmIERSTV9NT0RFX1JFRkxFQ1Rf WCkKIAkJdmFsIHw9IExBWUVSX0hfRkxJUDsKLQlpZiAocGxhbmUtPnN0YXRlLT5yb3RhdGlvbiAm IERSTV9NT0RFX1JFRkxFQ1RfWSkKKwlpZiAoc3RhdGUtPnJvdGF0aW9uICYgRFJNX01PREVfUkVG TEVDVF9ZKQogCQl2YWwgfD0gTEFZRVJfVl9GTElQOwogCi0JdmFsICY9IH5MQVlFUl9DT01QX01B U0s7Ci0JaWYgKGZvcm1hdF9oYXNfYWxwaGEpIHsKLQotCQkvKgotCQkgKiBhbHdheXMgZW5hYmxl IHBpeGVsIGFscGhhIGJsZW5kaW5nIHVudGlsIHdlIGhhdmUgYSB3YXkKLQkJICogdG8gY2hhbmdl IGJsZW5kIG1vZGVzCi0JCSAqLwotCQl2YWwgfD0gTEFZRVJfQ09NUF9QSVhFTDsKLQl9IGVsc2Ug eworCXZhbCAmPSB+KExBWUVSX0NPTVBfTUFTSyB8IExBWUVSX1BNVUxfRU5BQkxFIHwgTEFZRVJf QUxQSEEoMHhmZikpOwogCi0JCS8qCi0JCSAqIGRvIG5vdCBlbmFibGUgcGl4ZWwgYWxwaGEgYmxl bmRpbmcgYXMgdGhlIGNvbG9yIGNoYW5uZWwKLQkJICogZG9lcyBub3QgaGF2ZSBhbnkgYWxwaGEg aW5mb3JtYXRpb24KLQkJICovCisJaWYgKHN0YXRlLT5hbHBoYSAhPSBEUk1fQkxFTkRfQUxQSEFf T1BBUVVFKSB7CiAJCXZhbCB8PSBMQVlFUl9DT01QX1BMQU5FOwotCi0JCS8qIFNldCBsYXllciBh bHBoYSBjb2VmZmljaWVudCB0byAweGZmIGllIGZ1bGx5IG9wYXF1ZSAqLwotCQl2YWwgfD0gTEFZ RVJfQUxQSEEoMHhmZik7CisJfSBlbHNlIGlmIChzdGF0ZS0+ZmItPmZvcm1hdC0+aGFzX2FscGhh KSB7CisJCS8qIFdlIG9ubHkgY2FyZSBhYm91dCBibGVuZCBtb2RlIGlmIHRoZSBmb3JtYXQgaGFz IGFscGhhICovCisJCXN3aXRjaCAocGl4ZWxfYWxwaGEpIHsKKwkJY2FzZSBEUk1fTU9ERV9CTEVO RF9QUkVNVUxUSToKKwkJCXZhbCB8PSBMQVlFUl9DT01QX1BJWEVMIHwgTEFZRVJfUE1VTF9FTkFC TEU7CisJCQlicmVhazsKKwkJY2FzZSBEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRToKKwkJCXZhbCB8 PSBMQVlFUl9DT01QX1BJWEVMOworCQkJYnJlYWs7CisJCX0KIAl9CisJdmFsIHw9IExBWUVSX0FM UEhBKHBsYW5lX2FscGhhKTsKIAogCXZhbCAmPSB+TEFZRVJfRkxPV0NGRyhMQVlFUl9GTE9XQ0ZH X01BU0spOwotCWlmIChwbGFuZS0+c3RhdGUtPmNydGMpIHsKKwlpZiAoc3RhdGUtPmNydGMpIHsK IAkJc3RydWN0IG1hbGlkcF9jcnRjX3N0YXRlICptID0KLQkJCXRvX21hbGlkcF9jcnRjX3N0YXRl KHBsYW5lLT5zdGF0ZS0+Y3J0Yy0+c3RhdGUpOworCQkJdG9fbWFsaWRwX2NydGNfc3RhdGUoc3Rh dGUtPmNydGMtPnN0YXRlKTsKIAogCQlpZiAobS0+c2NhbGVyX2NvbmZpZy5zY2FsZV9lbmFibGUg JiYKIAkJICAgIG0tPnNjYWxlcl9jb25maWcucGxhbmVfc3JjX2lkID09IG1wLT5sYXllci0+aWQp CkBAIC00NDYsNiArNDUzLDkgQEAgaW50IG1hbGlkcF9kZV9wbGFuZXNfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZHJtKQogCXVuc2lnbmVkIGxvbmcgY3J0Y3MgPSAxIDw8IGRybS0+bW9kZV9jb25m aWcubnVtX2NydGM7CiAJdW5zaWduZWQgbG9uZyBmbGFncyA9IERSTV9NT0RFX1JPVEFURV8wIHwg RFJNX01PREVfUk9UQVRFXzkwIHwgRFJNX01PREVfUk9UQVRFXzE4MCB8CiAJCQkgICAgICBEUk1f TU9ERV9ST1RBVEVfMjcwIHwgRFJNX01PREVfUkVGTEVDVF9YIHwgRFJNX01PREVfUkVGTEVDVF9Z OworCXVuc2lnbmVkIGludCBibGVuZF9jYXBzID0gQklUKERSTV9NT0RFX0JMRU5EX1BJWEVMX05P TkUpIHwKKwkJCQkgIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgICB8CisJCQkJICBCSVQo RFJNX01PREVfQkxFTkRfQ09WRVJBR0UpOwogCXUzMiAqZm9ybWF0czsKIAlpbnQgcmV0LCBpLCBq LCBuOwogCkBAIC00OTgsNiArNTA4LDkgQEAgaW50IG1hbGlkcF9kZV9wbGFuZXNfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtKQogCQltYWxpZHBfaHdfd3JpdGUobWFsaWRwLT5kZXYsIE1BTElE UF9BTFBIQV9MVVQsCiAJCQkJcGxhbmUtPmxheWVyLT5iYXNlICsgTUFMSURQX0xBWUVSX0NPTVBP U0UpOwogCisJCWRybV9wbGFuZV9jcmVhdGVfYWxwaGFfcHJvcGVydHkoJnBsYW5lLT5iYXNlKTsK KwkJZHJtX3BsYW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgYmxl bmRfY2Fwcyk7CisKIAkJLyogQXR0YWNoIHRoZSBZVVYtPlJHQiBwcm9wZXJ0eSBvbmx5IHRvIHZp ZGVvIGxheWVycyAqLwogCQlpZiAoaWQgJiAoREVfVklERU8xIHwgREVfVklERU8yKSkgewogCQkJ LyogZGVmYXVsdCBlbmNvZGluZyBmb3IgWVVWLT5SR0IgaXMgQlQ2MDEgTkFSUk9XICovCi0tIAox LjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==