From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xinliang Liu Subject: [PATCH v3 05/10] drm/hisilicon: Add vblank driver for ADE Date: Sat, 30 Jan 2016 16:54:30 +0800 Message-ID: <1454144075-74361-6-git-send-email-xinliang.liu@linaro.org> References: <1454144075-74361-1-git-send-email-xinliang.liu@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1454144075-74361-1-git-send-email-xinliang.liu@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, daniel@ffwll.ch, robh@kernel.org, daniel@fooishbar.org, architt@codeaurora.org, airlied@linux.ie, corbet@lwn.net, catalin.marinas@arm.com, will.deacon@arm.com, emil.l.velikov@gmail.com Cc: andy.green@linaro.org, xuyiping@hisilicon.com, guodong.xu@linaro.org, linux-doc@vger.kernel.org, w.f@huawei.com, zourongrong@huawei.com, linuxarm@huawei.com, xuwei5@hisilicon.com, bintian.wang@huawei.com, haojian.zhuang@linaro.org, benjamin.gaignard@linaro.org, puck.chen@hisilicon.com, liguozhu@hisilicon.com, linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org QWRkIHZibGFuayBpcnEgaGFuZGxlLgoKU2lnbmVkLW9mZi1ieTogWGlubGlhbmcgTGl1IDx4aW5s aWFuZy5saXVAbGluYXJvLm9yZz4KCnYzOgotIFJlbW92ZSBoaXNpX2dldF9jcnRjX2Zyb21faW5k ZXggZnVuYy4KLSBBIGZldyBjbGVhbnVwLgp2MjoKLSBSZW1vdmUgYWJ0cmFjdGlvbiBsYXllci4K Ci0tLQogZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMgfCA2 MiArKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tp cmluL2tpcmluX2RybV9kcnYuYyB8IDE0ICsrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hp c2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2tpcmluL2tpcmluX2RybV9hZGUuYwppbmRleCBmZjcwZjFjM2RkNzguLjJhMTJlMTRlYTZhYiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMK QEAgLTI5NSw2ICsyOTUsNTkgQEAgc3RhdGljIHZvaWQgYWRlX3NldF9tZWRpYW5vY19xb3Moc3Ry dWN0IGFkZV9jcnRjICphY3J0YykKIAl3cml0ZWwodmFsLCByZWcpOwogfQogCitzdGF0aWMgaW50 IGFkZV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBw aXBlKQoreworCXN0cnVjdCBraXJpbl9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CisJc3RydWN0IGFkZV9jcnRjICphY3J0YyA9IHRvX2FkZV9jcnRjKHByaXYtPmNydGNbcGlw ZV0pOworCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OworCXZvaWQgX19pb21l bSAqYmFzZSA9IGN0eC0+YmFzZTsKKworCWlmICghY3R4LT5wb3dlcl9vbikKKwkJKHZvaWQpYWRl X3Bvd2VyX3VwKGN0eCk7CisKKwlhZGVfdXBkYXRlX2JpdHMoYmFzZSArIExESV9JTlRfRU4sIEZS QU1FX0VORF9JTlRfRU5fT0ZTVCwKKwkJCU1BU0soMSksIDEpOworCisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyB2b2lkIGFkZV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSkKK3sKKwlzdHJ1Y3Qga2lyaW5fZHJtX3ByaXZhdGUgKnByaXYgPSBk ZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBhZGVfY3J0YyAqYWNydGMgPSB0b19hZGVfY3J0Yyhw cml2LT5jcnRjW3BpcGVdKTsKKwlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0gYWNydGMtPmN0eDsK Kwl2b2lkIF9faW9tZW0gKmJhc2UgPSBjdHgtPmJhc2U7CisKKwlpZiAoIWN0eC0+cG93ZXJfb24p IHsKKwkJRFJNX0VSUk9SKCJwb3dlciBpcyBkb3duISB2YmxhbmsgZGlzYWJsZSBmYWlsXG4iKTsK KwkJcmV0dXJuOworCX0KKworCWFkZV91cGRhdGVfYml0cyhiYXNlICsgTERJX0lOVF9FTiwgRlJB TUVfRU5EX0lOVF9FTl9PRlNULAorCQkJTUFTSygxKSwgMCk7Cit9CisKK3N0YXRpYyBpcnFyZXR1 cm5fdCBhZGVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgYWRl X2NydGMgKmFjcnRjID0gZGF0YTsKKwlzdHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0gYWNydGMtPmN0 eDsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmYWNydGMtPmJhc2U7CisJdm9pZCBfX2lvbWVt ICpiYXNlID0gY3R4LT5iYXNlOworCXUzMiBzdGF0dXM7CisKKwlzdGF0dXMgPSByZWFkbChiYXNl ICsgTERJX01TS19JTlQpOworCURSTV9ERUJVR19WQkwoIkxESSBJUlE6IHN0YXR1cz0weCVYXG4i LCBzdGF0dXMpOworCisJLyogdmJsYW5rIGlycSAqLworCWlmIChzdGF0dXMgJiBCSVQoRlJBTUVf RU5EX0lOVF9FTl9PRlNUKSkgeworCQlhZGVfdXBkYXRlX2JpdHMoYmFzZSArIExESV9JTlRfQ0xS LCBGUkFNRV9FTkRfSU5UX0VOX09GU1QsCisJCQkJTUFTSygxKSwgMSk7CisJCWRybV9jcnRjX2hh bmRsZV92YmxhbmsoY3J0Yyk7CisJfQorCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCiBzdGF0 aWMgdm9pZCBhZGVfZGlzcGxheV9lbmFibGUoc3RydWN0IGFkZV9jcnRjICphY3J0YykKIHsKIAlz dHJ1Y3QgYWRlX2h3X2N0eCAqY3R4ID0gYWNydGMtPmN0eDsKQEAgLTk3Myw2ICsxMDI2LDE1IEBA IGludCBhZGVfZHJtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwogCisJLyogdmJsYW5rIGlycSBpbml0ICovCisJcmV0ID0gZGV2bV9yZXF1ZXN0 X2lycShkZXYtPmRldiwgY3R4LT5pcnEsIGFkZV9pcnFfaGFuZGxlciwKKwkJCSAgICAgICBEUklW RVJfSVJRX1NIQVJFRCwgZGV2LT5kcml2ZXItPm5hbWUsIGFjcnRjKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OworCWRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIgPSBkcm1fdmJsYW5r X25vX2h3X2NvdW50ZXI7CisJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBhZGVfZW5hYmxl X3ZibGFuazsKKwlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBhZGVfZGlzYWJsZV92Ymxh bms7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2ls aWNvbi9raXJpbi9raXJpbl9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tp cmluL2tpcmluX2RybV9kcnYuYwppbmRleCAwNTU3MjljMTg4OWMuLjcyMzg4OGZlYjc2MCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fZHJ2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fZHJ2LmMKQEAg LTMyLDYgKzMyLDcgQEAgc3RhdGljIGludCBraXJpbl9kcm1fa21zX2NsZWFudXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qga2lyaW5fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCisJZHJtX3ZibGFua19jbGVhbnVwKGRldik7CiAJZGNfb3BzLT5jbGVh bnVwKGRldik7CiAJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGV2KTsKIAlkZXZtX2tmcmVlKGRl di0+ZGV2LCBwcml2KTsKQEAgLTg1LDExICs4NiwyMiBAQCBzdGF0aWMgaW50IGtpcmluX2RybV9r bXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlnb3RvIGVycl9kY19jbGVhbnVwOwog CX0KIAorCS8qIHZibGFuayBpbml0ICovCisJcmV0ID0gZHJtX3ZibGFua19pbml0KGRldiwgZGV2 LT5tb2RlX2NvbmZpZy5udW1fY3J0Yyk7CisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoImZhaWxl ZCB0byBpbml0aWFsaXplIHZibGFuay5cbiIpOworCQlnb3RvIGVycl91bmJpbmRfYWxsOworCX0K KwkvKiB3aXRoIGlycV9lbmFibGVkID0gdHJ1ZSwgd2UgY2FuIHVzZSB0aGUgdmJsYW5rIGZlYXR1 cmUuICovCisJZGV2LT5pcnFfZW5hYmxlZCA9IHRydWU7CisKIAkvKiByZXNldCBhbGwgdGhlIHN0 YXRlcyBvZiBjcnRjL3BsYW5lL2VuY29kZXIvY29ubmVjdG9yICovCiAJZHJtX21vZGVfY29uZmln X3Jlc2V0KGRldik7CiAKIAlyZXR1cm4gMDsKIAorZXJyX3VuYmluZF9hbGw6CisJY29tcG9uZW50 X3VuYmluZF9hbGwoZGV2LT5kZXYsIGRldik7CiBlcnJfZGNfY2xlYW51cDoKIAlkY19vcHMtPmNs ZWFudXAoZGV2KTsKIGVycl9tb2RlX2NvbmZpZ19jbGVhbnVwOgpAQCAtMTIzLDcgKzEzNSw3IEBA IHN0YXRpYyBpbnQga2lyaW5fZ2VtX2NtYV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUsCiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBraXJpbl9kcm1fZHJpdmVyID0gewogCS5k cml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJ TUUgfAotCQkJCSAgRFJJVkVSX0FUT01JQywKKwkJCQkgIERSSVZFUl9BVE9NSUMgfCBEUklWRVJf SEFWRV9JUlEsCiAJLmZvcHMJCQk9ICZraXJpbl9kcm1fZm9wcywKIAkuc2V0X2J1c2lkCQk9IGRy bV9wbGF0Zm9ybV9zZXRfYnVzaWQsCiAKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=