From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Yao Subject: [PATCH] drm/rockchip: vop: support afbc format for rk3399 vop Date: Sat, 10 Sep 2016 11:07:32 +0800 Message-ID: <1473476852-25707-1-git-send-email-mark.yao@rock-chips.com> References: <1473474544-16248-3-git-send-email-mark.yao@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1473474544-16248-3-git-send-email-mark.yao@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie , Heiko Stuebner , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org List-Id: linux-rockchip.vger.kernel.org UmszMzk5IHZvcCBiaWcgY2FuIHN1cHBvcnQgb25lIGFmYmMgZGVjb2RlciwgdGhlIGFmYmMgZGVj b2RlcgpjYW4gc2VsZWN0IHdoaWNoIG92ZXJsYXkgd2luZG93IHVzZSBpdC4KCm9uIHZvcCBoYXJk d2FyZSwgd2UgY2FsbCBhZmJjIGRlY29kZXIgYXMgYWZiZGMuCgphZmJkYyB3aW5kb3cgaGFzIHNv bWUgbGltaXQ6CiAgMSwgbm90IHN1cHBvcnQgb2Zmc2V0IG9uIHNvdXJjZSBidWZmZXIuCiAgMiwg aWYgZmVlZCBub24tYWZiYyBidWZmZXIgdG8gYWZiYyBkZWNvZGVyLCBhZmJjIGRlY29kZXIgaGFy ZHdhcmUKICAgICB3b3VsZCBkaWUsIHdlIG5lZWQgdGFrZSBjYXJlIG9mIHVzaW5nIGl0LgoKQUZC QyBpcyBhIGNvbXByZXNzZWQgZm9ybWF0LCBtZWFucyBsb3dlciBiYW5kd2lkdGggY29uc3VtZSwK aXQncyB1c2VmdWwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4KClNpZ25lZC1vZmYtYnk6IE1hcmsg WWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX2Rydi5oIHwgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fdm9wLmMgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaCB8IDEzICsrKysrCiBkcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jIHwgIDcgKysrCiA0IGZpbGVz IGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fZHJ2LmgKaW5kZXggZWEzOTMyOS4uMWUwN2ZkNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oCkBAIC00NCw2ICs0NCwxMiBAQCBzdHJ1 Y3Qgcm9ja2NoaXBfY3J0Y19mdW5jcyB7CiAKIHN0cnVjdCByb2NrY2hpcF9jcnRjX3N0YXRlIHsK IAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsKKwlpbnQgYWZiZGNfd2luX2Zvcm1hdDsKKwlp bnQgYWZiZGNfd2luX3dpZHRoOworCWludCBhZmJkY193aW5faGVpZ2h0OworCWludCBhZmJkY193 aW5fcHRyOworCWludCBhZmJkY193aW5faWQ7CisJaW50IGFmYmRjX2VuOwogCWludCBvdXRwdXRf dHlwZTsKIAlpbnQgb3V0cHV0X21vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fdm9wLmMKaW5kZXggODM0NDU2Zi4uNjkxODIyMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCkBAIC05OSw2ICs5OSw3IEBAIHN0cnVj dCB2b3Bfd2luIHsKIAlzdHJ1Y3QgZHJtX3BsYW5lIGJhc2U7CiAJY29uc3Qgc3RydWN0IHZvcF93 aW5fZGF0YSAqZGF0YTsKIAlzdHJ1Y3Qgdm9wICp2b3A7CisJaW50IGlkOwogCiAJLyogcHJvdGVj dGVkIGJ5IGRldi0+ZXZlbnRfbG9jayAqLwogCWJvb2wgZW5hYmxlOwpAQCAtNTE0LDYgKzUxNSw3 IEBAIHN0YXRpYyB2b2lkIHZvcF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQog CQlWT1BfV0lOX1NFVCh2b3AsIHdpbiwgZW5hYmxlLCAwKTsKIAkJc3Bpbl91bmxvY2soJnZvcC0+ cmVnX2xvY2spOwogCX0KKwlWT1BfQ1RSTF9TRVQodm9wLCBhZmJkY19lbiwgMCk7CiAKIAlkcm1f Y3J0Y192Ymxhbmtfb2ZmKGNydGMpOwogCkBAIC0xMDA3LDkgKzEwMDksODEgQEAgc3RhdGljIHZv aWQgdm9wX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlWT1BfQ1RSTF9TRVQo dm9wLCBzdGFuZGJ5LCAwKTsKIH0KIAorc3RhdGljIGludCB2b3BfYWZiZGNfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKK3sKKwlzdHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSAqcyA9IHRvX3JvY2tjaGlw X2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl ID0gY3J0Y19zdGF0ZS0+c3RhdGU7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlOworCXN0cnVjdCB2b3BfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlOworCXN0cnVjdCB2b3Bfd2luICp3aW47CisJaW50IGFmYmRjX2Zvcm1hdDsKKwlpbnQg aTsKKworCXMtPmFmYmRjX2VuID0gMDsKKworCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRl LCBwbGFuZSwgcHN0YXRlLCBpKSB7CisJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcHN0 YXRlLT5mYjsKKwkJc3RydWN0IGRybV9yZWN0ICpzcmM7CisKKwkJd2luID0gdG9fdm9wX3dpbihw bGFuZSk7CisJCXBsYW5lX3N0YXRlID0gdG9fdm9wX3BsYW5lX3N0YXRlKHBzdGF0ZSk7CisKKwkJ aWYgKHBzdGF0ZS0+Y3J0YyAhPSBjcnRjIHx8ICFmYikKKwkJCWNvbnRpbnVlOworCisJCWlmIChm Yi0+bW9kaWZpZXJbMF0gIT0gRFJNX0ZPUk1BVF9NT0RfQVJNX0FGQkMpCisJCQljb250aW51ZTsK KworCQlzd2l0Y2ggKHBsYW5lX3N0YXRlLT5mb3JtYXQpIHsKKwkJY2FzZSBWT1BfRk1UX0FSR0I4 ODg4OgorCQkJYWZiZGNfZm9ybWF0ID0gQUZCRENfRk1UX1U4VThVOFU4OworCQkJYnJlYWs7CisJ CWNhc2UgVk9QX0ZNVF9SR0I4ODg6CisJCQlhZmJkY19mb3JtYXQgPSBBRkJEQ19GTVRfVThVOFU4 OworCQkJYnJlYWs7CisJCWNhc2UgVk9QX0ZNVF9SR0I1NjU6CisJCQlhZmJkY19mb3JtYXQgPSBB RkJEQ19GTVRfUkdCNTY1OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gLUVJTlZB TDsKKwkJfQorCisJCWlmIChzLT5hZmJkY19lbikgeworCQkJRFJNX0VSUk9SKCJ2b3Agb25seSBz dXBwb3J0IG9uZSBhZmJjIGxheWVyXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJ c3JjID0gJnBzdGF0ZS0+c3JjOworCQlpZiAoc3JjLT54MSB8fCBzcmMtPnkxIHx8IGZiLT5vZmZz ZXRzWzBdKSB7CisJCQlEUk1fRVJST1IoIndpblslZF0gYWZiZGMgbm90IHN1cHBvcnQgb2Zmc2V0 IGRpc3BsYXlcbiIsCisJCQkJICB3aW4tPmlkKTsKKwkJCURSTV9FUlJPUigieHBvcz0lZCwgeXBv cz0lZCwgb2Zmc2V0PSVkXG4iLAorCQkJCSAgc3JjLT54MSwgc3JjLT55MSwgZmItPm9mZnNldHNb MF0pOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJcy0+YWZiZGNfd2luX2Zvcm1hdCA9IGFm YmRjX2Zvcm1hdDsKKwkJcy0+YWZiZGNfd2luX3dpZHRoID0gcHN0YXRlLT5mYi0+d2lkdGggLSAx OworCQlzLT5hZmJkY193aW5faGVpZ2h0ID0gKGRybV9yZWN0X2hlaWdodChzcmMpID4+IDE2KSAt IDE7CisJCXMtPmFmYmRjX3dpbl9pZCA9IHdpbi0+aWQ7CisJCXMtPmFmYmRjX3dpbl9wdHIgPSBw bGFuZV9zdGF0ZS0+eXJnYl9tc3Q7CisJCXMtPmFmYmRjX2VuID0gMTsKKwl9CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIGludCB2b3BfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRj ICpjcnRjLAorCQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJcmV0 dXJuIHZvcF9hZmJkY19hdG9taWNfY2hlY2soY3J0YywgY3J0Y19zdGF0ZSk7Cit9CisKIHN0YXRp YyB2b2lkIHZvcF9jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJ ICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogeworCXN0cnVjdCByb2Nr Y2hpcF9jcnRjX3N0YXRlICpzID0gdG9fcm9ja2NoaXBfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7 CiAJc3RydWN0IHZvcCAqdm9wID0gdG9fdm9wKGNydGMpOwogCiAJaWYgKFdBUk5fT04oIXZvcC0+ aXNfZW5hYmxlZCkpCkBAIC0xMDE3LDYgKzEwOTEsMTkgQEAgc3RhdGljIHZvaWQgdm9wX2NydGNf YXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCXNwaW5fbG9jaygmdm9wLT5y ZWdfbG9jayk7CiAKKwlpZiAocy0+YWZiZGNfZW4pIHsKKwkJdWludDMyX3QgcGljX3NpemU7CisK KwkJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfZm9ybWF0LCBzLT5hZmJkY193aW5fZm9ybWF0IHwg MSA8PCA0KTsKKwkJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfaHJlZ19ibG9ja19zcGxpdCwgMCk7 CisJCVZPUF9DVFJMX1NFVCh2b3AsIGFmYmRjX3NlbCwgcy0+YWZiZGNfd2luX2lkKTsKKwkJVk9Q X0NUUkxfU0VUKHZvcCwgYWZiZGNfaGRyX3B0ciwgcy0+YWZiZGNfd2luX3B0cik7CisJCXBpY19z aXplID0gKHMtPmFmYmRjX3dpbl93aWR0aCAmIDB4ZmZmZik7CisJCXBpY19zaXplIHw9IHMtPmFm YmRjX3dpbl9oZWlnaHQgPDwgMTY7CisJCVZPUF9DVFJMX1NFVCh2b3AsIGFmYmRjX3BpY19zaXpl LCBwaWNfc2l6ZSk7CisJfQorCisJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfZW4sIHMtPmFmYmRj X2VuKTsKIAl2b3BfY2ZnX2RvbmUodm9wKTsKIAogCXNwaW5fdW5sb2NrKCZ2b3AtPnJlZ19sb2Nr KTsKQEAgLTEwNDIsNiArMTEyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVs cGVyX2Z1bmNzIHZvcF9jcnRjX2hlbHBlcl9mdW5jcyA9IHsKIAkuZW5hYmxlID0gdm9wX2NydGNf ZW5hYmxlLAogCS5kaXNhYmxlID0gdm9wX2NydGNfZGlzYWJsZSwKIAkubW9kZV9maXh1cCA9IHZv cF9jcnRjX21vZGVfZml4dXAsCisJLmF0b21pY19jaGVjayA9IHZvcF9jcnRjX2F0b21pY19jaGVj aywKIAkuYXRvbWljX2ZsdXNoID0gdm9wX2NydGNfYXRvbWljX2ZsdXNoLAogCS5hdG9taWNfYmVn aW4gPSB2b3BfY3J0Y19hdG9taWNfYmVnaW4sCiB9OwpAQCAtMTQxMyw2ICsxNTAxLDcgQEAgc3Rh dGljIHZvaWQgdm9wX3dpbl9pbml0KHN0cnVjdCB2b3AgKnZvcCkKIAkJc3RydWN0IHZvcF93aW4g KnZvcF93aW4gPSAmdm9wLT53aW5baV07CiAJCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndp bl9kYXRhID0gJnZvcF9kYXRhLT53aW5baV07CiAKKwkJdm9wX3dpbi0+aWQgPSBpOwogCQl2b3Bf d2luLT5kYXRhID0gd2luX2RhdGE7CiAJCXZvcF93aW4tPnZvcCA9IHZvcDsKIAl9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oIGIvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaAppbmRleCBmZjRmNTJlLi5iOWIx MjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3Zv cC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmgKQEAg LTE1LDYgKzE1LDEwIEBACiAjaWZuZGVmIF9ST0NLQ0hJUF9EUk1fVk9QX0gKICNkZWZpbmUgX1JP Q0tDSElQX0RSTV9WT1BfSAogCisjZGVmaW5lIEFGQkRDX0ZNVF9SR0I1NjUJMHgwCisjZGVmaW5l IEFGQkRDX0ZNVF9VOFU4VThVOAkweDUKKyNkZWZpbmUgQUZCRENfRk1UX1U4VThVOAkweDQKKwog ZW51bSB2b3BfZGF0YV9mb3JtYXQgewogCVZPUF9GTVRfQVJHQjg4ODggPSAwLAogCVZPUF9GTVRf UkdCODg4LApAQCAtNjEsNiArNjUsMTUgQEAgc3RydWN0IHZvcF9jdHJsIHsKIAlzdHJ1Y3Qgdm9w X3JlZyBocG9zdF9zdF9lbmQ7CiAJc3RydWN0IHZvcF9yZWcgdnBvc3Rfc3RfZW5kOwogCisJLyog QUZCREMgKi8KKwlzdHJ1Y3Qgdm9wX3JlZyBhZmJkY19lbjsKKwlzdHJ1Y3Qgdm9wX3JlZyBhZmJk Y19zZWw7CisJc3RydWN0IHZvcF9yZWcgYWZiZGNfZm9ybWF0OworCXN0cnVjdCB2b3BfcmVnIGFm YmRjX2hyZWdfYmxvY2tfc3BsaXQ7CisJc3RydWN0IHZvcF9yZWcgYWZiZGNfcGljX3NpemU7CisJ c3RydWN0IHZvcF9yZWcgYWZiZGNfaGRyX3B0cjsKKwlzdHJ1Y3Qgdm9wX3JlZyBhZmJkY19yc3Ru OworCiAJc3RydWN0IHZvcF9yZWcgY2ZnX2RvbmU7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwppbmRleCBmMWExNjg4Li5hMDk0MzdjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKQEAgLTMwMCw2ICszMDAs MTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfY3RybCByazMzOTlfY3RybF9kYXRhID0gewog CS52YWN0X3N0X2VuZCA9IFZPUF9SRUcoUkszMzk5X0RTUF9WQUNUX1NUX0VORCwgMHgxZmZmMWZm ZiwgMCksCiAJLmhwb3N0X3N0X2VuZCA9IFZPUF9SRUcoUkszMzk5X1BPU1RfRFNQX0hBQ1RfSU5G TywgMHgxZmZmMWZmZiwgMCksCiAJLnZwb3N0X3N0X2VuZCA9IFZPUF9SRUcoUkszMzk5X1BPU1Rf RFNQX1ZBQ1RfSU5GTywgMHgxZmZmMWZmZiwgMCksCisJLmFmYmRjX3JzdG4gPSBWT1BfUkVHKFJL MzM5OV9BRkJDRDBfQ1RSTCwgMHgxLCAzKSwKKwkuYWZiZGNfZW4gPSBWT1BfUkVHKFJLMzM5OV9B RkJDRDBfQ1RSTCwgMHgxLCAwKSwKKwkuYWZiZGNfc2VsID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0Qw X0NUUkwsIDB4MywgMSksCisJLmFmYmRjX2Zvcm1hdCA9IFZPUF9SRUcoUkszMzk5X0FGQkNEMF9D VFJMLCAweDFmLCAxNiksCisJLmFmYmRjX2hyZWdfYmxvY2tfc3BsaXQgPSBWT1BfUkVHKFJLMzM5 OV9BRkJDRDBfQ1RSTCwgMHgxLCAyMSksCisJLmFmYmRjX2hkcl9wdHIgPSBWT1BfUkVHKFJLMzM5 OV9BRkJDRDBfSERSX1BUUiwgMHhmZmZmZmZmZiwgMCksCisJLmFmYmRjX3BpY19zaXplID0gVk9Q X1JFRyhSSzMzOTlfQUZCQ0QwX1BJQ19TSVpFLCAweGZmZmZmZmZmLCAwKSwKIAkuY2ZnX2RvbmUg PSBWT1BfUkVHX01BU0soUkszMzk5X1JFR19DRkdfRE9ORSwgMHgxLCAwKSwKIH07CiAKLS0gCjEu OS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==