From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Yao Subject: [PATCH 3/3] drm/rockchip: vop: support afdc for rk3399 vop Date: Sat, 10 Sep 2016 10:29:04 +0800 Message-ID: <1473474544-16248-3-git-send-email-mark.yao@rock-chips.com> References: <1473474544-16248-1-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-1-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 UmszMzk5IHZvcCBiaWcgY2FuIHN1cHBvcnQgb25lIGFmYmMgZGVjb2RlciwgdGhlIGFmYmRjIGRl Y29kZXIKY2FuIHNlbGVjdCB3aGljaCBvdmVybGF5IHdpbmRvdyB1c2UgaXQuCgphZmJkYyB3aW5k b3cgaGFzIHNvbWUgbGltaXQ6CiAgMSwgbm90IHN1cHBvcnQgb2Zmc2V0IG9uIHNvdXJjZSBidWZm ZXIuCiAgMiwgaWYgZmVlZCBub24tYWZiYyBidWZmZXIgdG8gYWZiYyBkZWNvZGVyLCBhZmJjIGRl Y29kZXIgaGFyZHdhcmUKICAgICB3b3VsZCBkaWUsIHdlIG5lZWQgdGFrZSBjYXJlIG9mIHVzaW5n IGl0LgoKQUZCQyBpcyBhIGNvbXByZXNzZWQgZm9ybWF0LCBtZWFucyBsb3dlciBiYW5kd2lkdGgg Y29uc3VtZSwKaXQncyB1c2VmdWwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4KClNpZ25lZC1vZmYt Ynk6IE1hcmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oIHwgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaCB8IDEzICsr KysrCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jIHwgIDcgKysr CiA0IGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmgKaW5kZXggZWEzOTMyOS4uMWUwN2ZkNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oCkBAIC00NCw2ICs0NCwx MiBAQCBzdHJ1Y3Qgcm9ja2NoaXBfY3J0Y19mdW5jcyB7CiAKIHN0cnVjdCByb2NrY2hpcF9jcnRj X3N0YXRlIHsKIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsKKwlpbnQgYWZiZGNfd2luX2Zv cm1hdDsKKwlpbnQgYWZiZGNfd2luX3dpZHRoOworCWludCBhZmJkY193aW5faGVpZ2h0OworCWlu dCBhZmJkY193aW5fcHRyOworCWludCBhZmJkY193aW5faWQ7CisJaW50IGFmYmRjX2VuOwogCWlu dCBvdXRwdXRfdHlwZTsKIAlpbnQgb3V0cHV0X21vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKaW5kZXggODM0NDU2Zi4uNjkxODIyMyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCkBAIC05OSw2ICs5OSw3 IEBAIHN0cnVjdCB2b3Bfd2luIHsKIAlzdHJ1Y3QgZHJtX3BsYW5lIGJhc2U7CiAJY29uc3Qgc3Ry dWN0IHZvcF93aW5fZGF0YSAqZGF0YTsKIAlzdHJ1Y3Qgdm9wICp2b3A7CisJaW50IGlkOwogCiAJ LyogcHJvdGVjdGVkIGJ5IGRldi0+ZXZlbnRfbG9jayAqLwogCWJvb2wgZW5hYmxlOwpAQCAtNTE0 LDYgKzUxNSw3IEBAIHN0YXRpYyB2b2lkIHZvcF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjKQogCQlWT1BfV0lOX1NFVCh2b3AsIHdpbiwgZW5hYmxlLCAwKTsKIAkJc3Bpbl91bmxv Y2soJnZvcC0+cmVnX2xvY2spOwogCX0KKwlWT1BfQ1RSTF9TRVQodm9wLCBhZmJkY19lbiwgMCk7 CiAKIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMpOwogCkBAIC0xMDA3LDkgKzEwMDksODEgQEAg c3RhdGljIHZvaWQgdm9wX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlWT1Bf Q1RSTF9TRVQodm9wLCBzdGFuZGJ5LCAwKTsKIH0KIAorc3RhdGljIGludCB2b3BfYWZiZGNfYXRv bWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgIHN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSAqcyA9IHRv X3JvY2tjaGlwX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+c3RhdGU7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7 CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlOworCXN0cnVjdCB2b3BfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlOworCXN0cnVjdCB2b3Bfd2luICp3aW47CisJaW50IGFmYmRjX2Zvcm1h dDsKKwlpbnQgaTsKKworCXMtPmFmYmRjX2VuID0gMDsKKworCWZvcl9lYWNoX3BsYW5lX2luX3N0 YXRlKHN0YXRlLCBwbGFuZSwgcHN0YXRlLCBpKSB7CisJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gcHN0YXRlLT5mYjsKKwkJc3RydWN0IGRybV9yZWN0ICpzcmM7CisKKwkJd2luID0gdG9f dm9wX3dpbihwbGFuZSk7CisJCXBsYW5lX3N0YXRlID0gdG9fdm9wX3BsYW5lX3N0YXRlKHBzdGF0 ZSk7CisKKwkJaWYgKHBzdGF0ZS0+Y3J0YyAhPSBjcnRjIHx8ICFmYikKKwkJCWNvbnRpbnVlOwor CisJCWlmIChmYi0+bW9kaWZpZXJbMF0gIT0gRFJNX0ZPUk1BVF9NT0RfQVJNX0FGQkMpCisJCQlj b250aW51ZTsKKworCQlzd2l0Y2ggKHBsYW5lX3N0YXRlLT5mb3JtYXQpIHsKKwkJY2FzZSBWT1Bf Rk1UX0FSR0I4ODg4OgorCQkJYWZiZGNfZm9ybWF0ID0gQUZCRENfRk1UX1U4VThVOFU4OworCQkJ YnJlYWs7CisJCWNhc2UgVk9QX0ZNVF9SR0I4ODg6CisJCQlhZmJkY19mb3JtYXQgPSBBRkJEQ19G TVRfVThVOFU4OworCQkJYnJlYWs7CisJCWNhc2UgVk9QX0ZNVF9SR0I1NjU6CisJCQlhZmJkY19m b3JtYXQgPSBBRkJEQ19GTVRfUkdCNTY1OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJfQorCisJCWlmIChzLT5hZmJkY19lbikgeworCQkJRFJNX0VSUk9SKCJ2 b3Agb25seSBzdXBwb3J0IG9uZSBhZmJjIGxheWVyXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisKKwkJc3JjID0gJnBzdGF0ZS0+c3JjOworCQlpZiAoc3JjLT54MSB8fCBzcmMtPnkxIHx8 IGZiLT5vZmZzZXRzWzBdKSB7CisJCQlEUk1fRVJST1IoIndpblslZF0gYWZiZGMgbm90IHN1cHBv cnQgb2Zmc2V0IGRpc3BsYXlcbiIsCisJCQkJICB3aW4tPmlkKTsKKwkJCURSTV9FUlJPUigieHBv cz0lZCwgeXBvcz0lZCwgb2Zmc2V0PSVkXG4iLAorCQkJCSAgc3JjLT54MSwgc3JjLT55MSwgZmIt Pm9mZnNldHNbMF0pOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJcy0+YWZiZGNfd2luX2Zv cm1hdCA9IGFmYmRjX2Zvcm1hdDsKKwkJcy0+YWZiZGNfd2luX3dpZHRoID0gcHN0YXRlLT5mYi0+ d2lkdGggLSAxOworCQlzLT5hZmJkY193aW5faGVpZ2h0ID0gKGRybV9yZWN0X2hlaWdodChzcmMp ID4+IDE2KSAtIDE7CisJCXMtPmFmYmRjX3dpbl9pZCA9IHdpbi0+aWQ7CisJCXMtPmFmYmRjX3dp bl9wdHIgPSBwbGFuZV9zdGF0ZS0+eXJnYl9tc3Q7CisJCXMtPmFmYmRjX2VuID0gMTsKKwl9CisK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB2b3BfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0 IGRybV9jcnRjICpjcnRjLAorCQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cit7CisJcmV0dXJuIHZvcF9hZmJkY19hdG9taWNfY2hlY2soY3J0YywgY3J0Y19zdGF0ZSk7Cit9 CisKIHN0YXRpYyB2b2lkIHZvcF9jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCiAJCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogeworCXN0 cnVjdCByb2NrY2hpcF9jcnRjX3N0YXRlICpzID0gdG9fcm9ja2NoaXBfY3J0Y19zdGF0ZShjcnRj LT5zdGF0ZSk7CiAJc3RydWN0IHZvcCAqdm9wID0gdG9fdm9wKGNydGMpOwogCiAJaWYgKFdBUk5f T04oIXZvcC0+aXNfZW5hYmxlZCkpCkBAIC0xMDE3LDYgKzEwOTEsMTkgQEAgc3RhdGljIHZvaWQg dm9wX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCXNwaW5fbG9j aygmdm9wLT5yZWdfbG9jayk7CiAKKwlpZiAocy0+YWZiZGNfZW4pIHsKKwkJdWludDMyX3QgcGlj X3NpemU7CisKKwkJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfZm9ybWF0LCBzLT5hZmJkY193aW5f Zm9ybWF0IHwgMSA8PCA0KTsKKwkJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfaHJlZ19ibG9ja19z cGxpdCwgMCk7CisJCVZPUF9DVFJMX1NFVCh2b3AsIGFmYmRjX3NlbCwgcy0+YWZiZGNfd2luX2lk KTsKKwkJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfaGRyX3B0ciwgcy0+YWZiZGNfd2luX3B0cik7 CisJCXBpY19zaXplID0gKHMtPmFmYmRjX3dpbl93aWR0aCAmIDB4ZmZmZik7CisJCXBpY19zaXpl IHw9IHMtPmFmYmRjX3dpbl9oZWlnaHQgPDwgMTY7CisJCVZPUF9DVFJMX1NFVCh2b3AsIGFmYmRj X3BpY19zaXplLCBwaWNfc2l6ZSk7CisJfQorCisJVk9QX0NUUkxfU0VUKHZvcCwgYWZiZGNfZW4s IHMtPmFmYmRjX2VuKTsKIAl2b3BfY2ZnX2RvbmUodm9wKTsKIAogCXNwaW5fdW5sb2NrKCZ2b3At PnJlZ19sb2NrKTsKQEAgLTEwNDIsNiArMTEyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2NydGNfaGVscGVyX2Z1bmNzIHZvcF9jcnRjX2hlbHBlcl9mdW5jcyA9IHsKIAkuZW5hYmxlID0g dm9wX2NydGNfZW5hYmxlLAogCS5kaXNhYmxlID0gdm9wX2NydGNfZGlzYWJsZSwKIAkubW9kZV9m aXh1cCA9IHZvcF9jcnRjX21vZGVfZml4dXAsCisJLmF0b21pY19jaGVjayA9IHZvcF9jcnRjX2F0 b21pY19jaGVjaywKIAkuYXRvbWljX2ZsdXNoID0gdm9wX2NydGNfYXRvbWljX2ZsdXNoLAogCS5h dG9taWNfYmVnaW4gPSB2b3BfY3J0Y19hdG9taWNfYmVnaW4sCiB9OwpAQCAtMTQxMyw2ICsxNTAx LDcgQEAgc3RhdGljIHZvaWQgdm9wX3dpbl9pbml0KHN0cnVjdCB2b3AgKnZvcCkKIAkJc3RydWN0 IHZvcF93aW4gKnZvcF93aW4gPSAmdm9wLT53aW5baV07CiAJCWNvbnN0IHN0cnVjdCB2b3Bfd2lu X2RhdGEgKndpbl9kYXRhID0gJnZvcF9kYXRhLT53aW5baV07CiAKKwkJdm9wX3dpbi0+aWQgPSBp OwogCQl2b3Bfd2luLT5kYXRhID0gd2luX2RhdGE7CiAJCXZvcF93aW4tPnZvcCA9IHZvcDsKIAl9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5o IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaAppbmRleCBmZjRm NTJlLi5iOWIxMjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX3ZvcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1f dm9wLmgKQEAgLTE1LDYgKzE1LDEwIEBACiAjaWZuZGVmIF9ST0NLQ0hJUF9EUk1fVk9QX0gKICNk ZWZpbmUgX1JPQ0tDSElQX0RSTV9WT1BfSAogCisjZGVmaW5lIEFGQkRDX0ZNVF9SR0I1NjUJMHgw CisjZGVmaW5lIEFGQkRDX0ZNVF9VOFU4VThVOAkweDUKKyNkZWZpbmUgQUZCRENfRk1UX1U4VThV OAkweDQKKwogZW51bSB2b3BfZGF0YV9mb3JtYXQgewogCVZPUF9GTVRfQVJHQjg4ODggPSAwLAog CVZPUF9GTVRfUkdCODg4LApAQCAtNjEsNiArNjUsMTUgQEAgc3RydWN0IHZvcF9jdHJsIHsKIAlz dHJ1Y3Qgdm9wX3JlZyBocG9zdF9zdF9lbmQ7CiAJc3RydWN0IHZvcF9yZWcgdnBvc3Rfc3RfZW5k OwogCisJLyogQUZCREMgKi8KKwlzdHJ1Y3Qgdm9wX3JlZyBhZmJkY19lbjsKKwlzdHJ1Y3Qgdm9w X3JlZyBhZmJkY19zZWw7CisJc3RydWN0IHZvcF9yZWcgYWZiZGNfZm9ybWF0OworCXN0cnVjdCB2 b3BfcmVnIGFmYmRjX2hyZWdfYmxvY2tfc3BsaXQ7CisJc3RydWN0IHZvcF9yZWcgYWZiZGNfcGlj X3NpemU7CisJc3RydWN0IHZvcF9yZWcgYWZiZGNfaGRyX3B0cjsKKwlzdHJ1Y3Qgdm9wX3JlZyBh ZmJkY19yc3RuOworCiAJc3RydWN0IHZvcF9yZWcgY2ZnX2RvbmU7CiB9OwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwppbmRleCBmMWExNjg4Li5hMDk0Mzdj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKQEAgLTMw MCw2ICszMDAsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfY3RybCByazMzOTlfY3RybF9k YXRhID0gewogCS52YWN0X3N0X2VuZCA9IFZPUF9SRUcoUkszMzk5X0RTUF9WQUNUX1NUX0VORCwg MHgxZmZmMWZmZiwgMCksCiAJLmhwb3N0X3N0X2VuZCA9IFZPUF9SRUcoUkszMzk5X1BPU1RfRFNQ X0hBQ1RfSU5GTywgMHgxZmZmMWZmZiwgMCksCiAJLnZwb3N0X3N0X2VuZCA9IFZPUF9SRUcoUksz Mzk5X1BPU1RfRFNQX1ZBQ1RfSU5GTywgMHgxZmZmMWZmZiwgMCksCisJLmFmYmRjX3JzdG4gPSBW T1BfUkVHKFJLMzM5OV9BRkJDRDBfQ1RSTCwgMHgxLCAzKSwKKwkuYWZiZGNfZW4gPSBWT1BfUkVH KFJLMzM5OV9BRkJDRDBfQ1RSTCwgMHgxLCAwKSwKKwkuYWZiZGNfc2VsID0gVk9QX1JFRyhSSzMz OTlfQUZCQ0QwX0NUUkwsIDB4MywgMSksCisJLmFmYmRjX2Zvcm1hdCA9IFZPUF9SRUcoUkszMzk5 X0FGQkNEMF9DVFJMLCAweDFmLCAxNiksCisJLmFmYmRjX2hyZWdfYmxvY2tfc3BsaXQgPSBWT1Bf UkVHKFJLMzM5OV9BRkJDRDBfQ1RSTCwgMHgxLCAyMSksCisJLmFmYmRjX2hkcl9wdHIgPSBWT1Bf UkVHKFJLMzM5OV9BRkJDRDBfSERSX1BUUiwgMHhmZmZmZmZmZiwgMCksCisJLmFmYmRjX3BpY19z aXplID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0QwX1BJQ19TSVpFLCAweGZmZmZmZmZmLCAwKSwKIAku Y2ZnX2RvbmUgPSBWT1BfUkVHX01BU0soUkszMzk5X1JFR19DRkdfRE9ORSwgMHgxLCAwKSwKIH07 CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==