From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Yao Subject: [PATCH 3/3 v1.1] drm/rockchip: vop: support afbc format for rk3399 vop Date: Sat, 10 Sep 2016 11:10:37 +0800 Message-ID: <1473477037-26407-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 WWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4KLS0tCmNoYW5nZXMgaW4gdjEuMQogIGNvcnJl Y3Qgc29tZSBjb21tZW50LgoKIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1f ZHJ2LmggfCAgNiArKwogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3Au YyB8IDg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oIHwgMTMgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgfCAgNyArKysKIDQgZmlsZXMgY2hhbmdlZCwgMTE1IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYu aAppbmRleCBlYTM5MzI5Li4xZTA3ZmQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fZHJ2LmgKQEAgLTQ0LDYgKzQ0LDEyIEBAIHN0cnVjdCByb2NrY2hpcF9jcnRj X2Z1bmNzIHsKIAogc3RydWN0IHJvY2tjaGlwX2NydGNfc3RhdGUgewogCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSBiYXNlOworCWludCBhZmJkY193aW5fZm9ybWF0OworCWludCBhZmJkY193aW5fd2lk dGg7CisJaW50IGFmYmRjX3dpbl9oZWlnaHQ7CisJaW50IGFmYmRjX3dpbl9wdHI7CisJaW50IGFm YmRjX3dpbl9pZDsKKwlpbnQgYWZiZGNfZW47CiAJaW50IG91dHB1dF90eXBlOwogCWludCBvdXRw dXRfbW9kZTsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3Au YwppbmRleCA4MzQ0NTZmLi42OTE4MjIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fdm9wLmMKQEAgLTk5LDYgKzk5LDcgQEAgc3RydWN0IHZvcF93aW4gewogCXN0 cnVjdCBkcm1fcGxhbmUgYmFzZTsKIAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhICpkYXRhOwog CXN0cnVjdCB2b3AgKnZvcDsKKwlpbnQgaWQ7CiAKIAkvKiBwcm90ZWN0ZWQgYnkgZGV2LT5ldmVu dF9sb2NrICovCiAJYm9vbCBlbmFibGU7CkBAIC01MTQsNiArNTE1LDcgQEAgc3RhdGljIHZvaWQg dm9wX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCVZPUF9XSU5fU0VUKHZv cCwgd2luLCBlbmFibGUsIDApOwogCQlzcGluX3VubG9jaygmdm9wLT5yZWdfbG9jayk7CiAJfQor CVZPUF9DVFJMX1NFVCh2b3AsIGFmYmRjX2VuLCAwKTsKIAogCWRybV9jcnRjX3ZibGFua19vZmYo Y3J0Yyk7CiAKQEAgLTEwMDcsOSArMTAwOSw4MSBAQCBzdGF0aWMgdm9pZCB2b3BfY3J0Y19lbmFi bGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCVZPUF9DVFJMX1NFVCh2b3AsIHN0YW5kYnksIDAp OwogfQogCitzdGF0aWMgaW50IHZvcF9hZmJkY19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRj ICpjcnRjLAorCQkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoreworCXN0 cnVjdCByb2NrY2hpcF9jcnRjX3N0YXRlICpzID0gdG9fcm9ja2NoaXBfY3J0Y19zdGF0ZShjcnRj X3N0YXRlKTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5z dGF0ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpwc3RhdGU7CisJc3RydWN0IHZvcF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJc3RydWN0 IHZvcF93aW4gKndpbjsKKwlpbnQgYWZiZGNfZm9ybWF0OworCWludCBpOworCisJcy0+YWZiZGNf ZW4gPSAwOworCisJZm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwc3RhdGUs IGkpIHsKKwkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwc3RhdGUtPmZiOworCQlzdHJ1 Y3QgZHJtX3JlY3QgKnNyYzsKKworCQl3aW4gPSB0b192b3Bfd2luKHBsYW5lKTsKKwkJcGxhbmVf c3RhdGUgPSB0b192b3BfcGxhbmVfc3RhdGUocHN0YXRlKTsKKworCQlpZiAocHN0YXRlLT5jcnRj ICE9IGNydGMgfHwgIWZiKQorCQkJY29udGludWU7CisKKwkJaWYgKGZiLT5tb2RpZmllclswXSAh PSBEUk1fRk9STUFUX01PRF9BUk1fQUZCQykKKwkJCWNvbnRpbnVlOworCisJCXN3aXRjaCAocGxh bmVfc3RhdGUtPmZvcm1hdCkgeworCQljYXNlIFZPUF9GTVRfQVJHQjg4ODg6CisJCQlhZmJkY19m b3JtYXQgPSBBRkJEQ19GTVRfVThVOFU4VTg7CisJCQlicmVhazsKKwkJY2FzZSBWT1BfRk1UX1JH Qjg4ODoKKwkJCWFmYmRjX2Zvcm1hdCA9IEFGQkRDX0ZNVF9VOFU4VTg7CisJCQlicmVhazsKKwkJ Y2FzZSBWT1BfRk1UX1JHQjU2NToKKwkJCWFmYmRjX2Zvcm1hdCA9IEFGQkRDX0ZNVF9SR0I1NjU7 CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJaWYg KHMtPmFmYmRjX2VuKSB7CisJCQlEUk1fRVJST1IoInZvcCBvbmx5IHN1cHBvcnQgb25lIGFmYmMg bGF5ZXJcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlzcmMgPSAmcHN0YXRlLT5z cmM7CisJCWlmIChzcmMtPngxIHx8IHNyYy0+eTEgfHwgZmItPm9mZnNldHNbMF0pIHsKKwkJCURS TV9FUlJPUigid2luWyVkXSBhZmJkYyBub3Qgc3VwcG9ydCBvZmZzZXQgZGlzcGxheVxuIiwKKwkJ CQkgIHdpbi0+aWQpOworCQkJRFJNX0VSUk9SKCJ4cG9zPSVkLCB5cG9zPSVkLCBvZmZzZXQ9JWRc biIsCisJCQkJICBzcmMtPngxLCBzcmMtPnkxLCBmYi0+b2Zmc2V0c1swXSk7CisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJfQorCQlzLT5hZmJkY193aW5fZm9ybWF0ID0gYWZiZGNfZm9ybWF0OworCQlz LT5hZmJkY193aW5fd2lkdGggPSBwc3RhdGUtPmZiLT53aWR0aCAtIDE7CisJCXMtPmFmYmRjX3dp bl9oZWlnaHQgPSAoZHJtX3JlY3RfaGVpZ2h0KHNyYykgPj4gMTYpIC0gMTsKKwkJcy0+YWZiZGNf d2luX2lkID0gd2luLT5pZDsKKwkJcy0+YWZiZGNfd2luX3B0ciA9IHBsYW5lX3N0YXRlLT55cmdi X21zdDsKKwkJcy0+YWZiZGNfZW4gPSAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IHZvcF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJIHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlyZXR1cm4gdm9wX2FmYmRjX2F0 b21pY19jaGVjayhjcnRjLCBjcnRjX3N0YXRlKTsKK30KKwogc3RhdGljIHZvaWQgdm9wX2NydGNf YXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7CisJc3RydWN0IHJvY2tjaGlwX2NydGNfc3RhdGUg KnMgPSB0b19yb2NrY2hpcF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAlzdHJ1Y3Qgdm9wICp2 b3AgPSB0b192b3AoY3J0Yyk7CiAKIAlpZiAoV0FSTl9PTighdm9wLT5pc19lbmFibGVkKSkKQEAg LTEwMTcsNiArMTA5MSwxOSBAQCBzdGF0aWMgdm9pZCB2b3BfY3J0Y19hdG9taWNfZmx1c2goc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCiAJc3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAorCWlm IChzLT5hZmJkY19lbikgeworCQl1aW50MzJfdCBwaWNfc2l6ZTsKKworCQlWT1BfQ1RSTF9TRVQo dm9wLCBhZmJkY19mb3JtYXQsIHMtPmFmYmRjX3dpbl9mb3JtYXQgfCAxIDw8IDQpOworCQlWT1Bf Q1RSTF9TRVQodm9wLCBhZmJkY19ocmVnX2Jsb2NrX3NwbGl0LCAwKTsKKwkJVk9QX0NUUkxfU0VU KHZvcCwgYWZiZGNfc2VsLCBzLT5hZmJkY193aW5faWQpOworCQlWT1BfQ1RSTF9TRVQodm9wLCBh ZmJkY19oZHJfcHRyLCBzLT5hZmJkY193aW5fcHRyKTsKKwkJcGljX3NpemUgPSAocy0+YWZiZGNf d2luX3dpZHRoICYgMHhmZmZmKTsKKwkJcGljX3NpemUgfD0gcy0+YWZiZGNfd2luX2hlaWdodCA8 PCAxNjsKKwkJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfcGljX3NpemUsIHBpY19zaXplKTsKKwl9 CisKKwlWT1BfQ1RSTF9TRVQodm9wLCBhZmJkY19lbiwgcy0+YWZiZGNfZW4pOwogCXZvcF9jZmdf ZG9uZSh2b3ApOwogCiAJc3Bpbl91bmxvY2soJnZvcC0+cmVnX2xvY2spOwpAQCAtMTA0Miw2ICsx MTI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3Mgdm9wX2Ny dGNfaGVscGVyX2Z1bmNzID0gewogCS5lbmFibGUgPSB2b3BfY3J0Y19lbmFibGUsCiAJLmRpc2Fi bGUgPSB2b3BfY3J0Y19kaXNhYmxlLAogCS5tb2RlX2ZpeHVwID0gdm9wX2NydGNfbW9kZV9maXh1 cCwKKwkuYXRvbWljX2NoZWNrID0gdm9wX2NydGNfYXRvbWljX2NoZWNrLAogCS5hdG9taWNfZmx1 c2ggPSB2b3BfY3J0Y19hdG9taWNfZmx1c2gsCiAJLmF0b21pY19iZWdpbiA9IHZvcF9jcnRjX2F0 b21pY19iZWdpbiwKIH07CkBAIC0xNDEzLDYgKzE1MDEsNyBAQCBzdGF0aWMgdm9pZCB2b3Bfd2lu X2luaXQoc3RydWN0IHZvcCAqdm9wKQogCQlzdHJ1Y3Qgdm9wX3dpbiAqdm9wX3dpbiA9ICZ2b3At PndpbltpXTsKIAkJY29uc3Qgc3RydWN0IHZvcF93aW5fZGF0YSAqd2luX2RhdGEgPSAmdm9wX2Rh dGEtPndpbltpXTsKIAorCQl2b3Bfd2luLT5pZCA9IGk7CiAJCXZvcF93aW4tPmRhdGEgPSB3aW5f ZGF0YTsKIAkJdm9wX3dpbi0+dm9wID0gdm9wOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmggYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX3ZvcC5oCmluZGV4IGZmNGY1MmUuLmI5YjEyMGUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaApAQCAtMTUsNiArMTUsMTAgQEAK ICNpZm5kZWYgX1JPQ0tDSElQX0RSTV9WT1BfSAogI2RlZmluZSBfUk9DS0NISVBfRFJNX1ZPUF9I CiAKKyNkZWZpbmUgQUZCRENfRk1UX1JHQjU2NQkweDAKKyNkZWZpbmUgQUZCRENfRk1UX1U4VThV OFU4CTB4NQorI2RlZmluZSBBRkJEQ19GTVRfVThVOFU4CTB4NAorCiBlbnVtIHZvcF9kYXRhX2Zv cm1hdCB7CiAJVk9QX0ZNVF9BUkdCODg4OCA9IDAsCiAJVk9QX0ZNVF9SR0I4ODgsCkBAIC02MSw2 ICs2NSwxNSBAQCBzdHJ1Y3Qgdm9wX2N0cmwgewogCXN0cnVjdCB2b3BfcmVnIGhwb3N0X3N0X2Vu ZDsKIAlzdHJ1Y3Qgdm9wX3JlZyB2cG9zdF9zdF9lbmQ7CiAKKwkvKiBBRkJEQyAqLworCXN0cnVj dCB2b3BfcmVnIGFmYmRjX2VuOworCXN0cnVjdCB2b3BfcmVnIGFmYmRjX3NlbDsKKwlzdHJ1Y3Qg dm9wX3JlZyBhZmJkY19mb3JtYXQ7CisJc3RydWN0IHZvcF9yZWcgYWZiZGNfaHJlZ19ibG9ja19z cGxpdDsKKwlzdHJ1Y3Qgdm9wX3JlZyBhZmJkY19waWNfc2l6ZTsKKwlzdHJ1Y3Qgdm9wX3JlZyBh ZmJkY19oZHJfcHRyOworCXN0cnVjdCB2b3BfcmVnIGFmYmRjX3JzdG47CisKIAlzdHJ1Y3Qgdm9w X3JlZyBjZmdfZG9uZTsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF92b3BfcmVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf dm9wX3JlZy5jCmluZGV4IGYxYTE2ODguLmEwOTQzN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwpAQCAtMzAwLDYgKzMwMCwxMyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHZvcF9jdHJsIHJrMzM5OV9jdHJsX2RhdGEgPSB7CiAJLnZhY3Rfc3RfZW5kID0g Vk9QX1JFRyhSSzMzOTlfRFNQX1ZBQ1RfU1RfRU5ELCAweDFmZmYxZmZmLCAwKSwKIAkuaHBvc3Rf c3RfZW5kID0gVk9QX1JFRyhSSzMzOTlfUE9TVF9EU1BfSEFDVF9JTkZPLCAweDFmZmYxZmZmLCAw KSwKIAkudnBvc3Rfc3RfZW5kID0gVk9QX1JFRyhSSzMzOTlfUE9TVF9EU1BfVkFDVF9JTkZPLCAw eDFmZmYxZmZmLCAwKSwKKwkuYWZiZGNfcnN0biA9IFZPUF9SRUcoUkszMzk5X0FGQkNEMF9DVFJM LCAweDEsIDMpLAorCS5hZmJkY19lbiA9IFZPUF9SRUcoUkszMzk5X0FGQkNEMF9DVFJMLCAweDEs IDApLAorCS5hZmJkY19zZWwgPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBfQ1RSTCwgMHgzLCAxKSwK KwkuYWZiZGNfZm9ybWF0ID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0QwX0NUUkwsIDB4MWYsIDE2KSwK KwkuYWZiZGNfaHJlZ19ibG9ja19zcGxpdCA9IFZPUF9SRUcoUkszMzk5X0FGQkNEMF9DVFJMLCAw eDEsIDIxKSwKKwkuYWZiZGNfaGRyX3B0ciA9IFZPUF9SRUcoUkszMzk5X0FGQkNEMF9IRFJfUFRS LCAweGZmZmZmZmZmLCAwKSwKKwkuYWZiZGNfcGljX3NpemUgPSBWT1BfUkVHKFJLMzM5OV9BRkJD RDBfUElDX1NJWkUsIDB4ZmZmZmZmZmYsIDApLAogCS5jZmdfZG9uZSA9IFZPUF9SRUdfTUFTSyhS SzMzOTlfUkVHX0NGR19ET05FLCAweDEsIDApLAogfTsKIAotLSAKMS45LjEKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK