From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: [PATCH v4 6/9] drm/komeda: Add komeda_framebuffer Date: Thu, 3 Jan 2019 11:41:13 +0000 Message-ID: <20190103113841.15403-7-james.qian.wang@arm.com> References: <20190103113841.15403-1-james.qian.wang@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190103113841.15403-1-james.qian.wang@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau , "daniel.vetter@ffwll.ch" , "rdunlap@infradead.org" , "robh+dt@kernel.org" Cc: Mark Rutland , "linux-doc@vger.kernel.org" , "maxime.ripard@bootlin.com" , "Jonathan Chai (Arm Technology China)" , Alexandru-Cosmin Gheorghe , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "yamada.masahiro@socionext.com" , "Yiqi Kang (Arm Technology China)" , "mchehab+samsung@kernel.org" , "Tiannan Zhu (Arm Technology China)" , "corbet@lwn.net" , "airlied@linux.ie" , "malidp@foss.arm.com" , "thomas Sun (Arm Technology China)" , Ayan Halder , devicetree List-Id: devicetree@vger.kernel.org RnJvbTogImphbWVzIHFpYW4gd2FuZyAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIiA8amFtZXMucWlh bi53YW5nQGFybS5jb20+Cgprb21lZGFfZnJhbWVidWZmZXIgaXMgZm9yIGV4dGVuZGluZyBkcm1f ZnJhbWVidWZmZXIgdG8gYWRkIGtvbWVkYSBvd24KYXR0cmlidXRlcyBhbmQga29tZWRhIHNwZWNp ZmljIGZiIGhhbmRsaW5nLgoKQ2hhbmdlcyBpbiB2MzoKLSBGaXhlZCBzdHlsZSBwcm9ibGVtIGZv dW5kIGJ5IGNoZWNrcGF0Y2gucGwgLS1zdHJpY3QuCgpTaWduZWQtb2ZmLWJ5OiBKYW1lcyBRaWFu IFdhbmcgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8amFtZXMucWlhbi53YW5nQGFybS5jb20+CkFj a2VkLWJ5OiBMaXZpdSBEdWRhdSA8bGl2aXUuZHVkYXVAYXJtLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxlICAgfCAgIDMgKy0KIC4uLi9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmMgICB8IDE2NSArKysrKysrKysrKysrKysr KysKIC4uLi9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmggICB8ICAzMSAr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21l ZGFfZnJhbWVidWZmZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9NYWtlZmlsZQppbmRleCAzOTRmYzJhYTQzNGEuLjI1YmVhZTkwMGVk MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9NYWtlZmls ZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxlCkBAIC04 LDcgKzgsOCBAQCBrb21lZGEteSA6PSBcCiAJa29tZWRhX2Rydi5vIFwKIAlrb21lZGFfZGV2Lm8g XAogCWtvbWVkYV9mb3JtYXRfY2Fwcy5vIFwKLQlrb21lZGFfcGlwZWxpbmUubworCWtvbWVkYV9w aXBlbGluZS5vIFwKKwlrb21lZGFfZnJhbWVidWZmZXIubwogCiBrb21lZGEteSArPSBcCiAJZDcx L2Q3MV9kZXYubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEva29tZWRhX2ZyYW1lYnVmZmVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi40ZGRkNTMxNGNhMjMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1ZmZlci5jCkBAIC0wLDAgKzEsMTY1IEBA CisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIChDKSBDT1BZUklH SFQgMjAxOCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIEF1dGhvcjogSmFt ZXMuUWlhbi5XYW5nIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNvbT4KKyAqCisgKi8KKyNpbmNsdWRl IDxkcm0vZHJtX2dlbS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBl ci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9k cm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlICJrb21lZGFfZnJhbWVidWZmZXIuaCIKKyNp bmNsdWRlICJrb21lZGFfZGV2LmgiCisKK3N0YXRpYyB2b2lkIGtvbWVkYV9mYl9kZXN0cm95KHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQoreworCXN0cnVjdCBrb21lZGFfZmIgKmtmYiA9IHRv X2tmYihmYik7CisJdTMyIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZmItPmZvcm1hdC0+bnVtX3Bs YW5lczsgaSsrKQorCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoZmItPm9ialtpXSk7CisK Kwlkcm1fZnJhbWVidWZmZXJfY2xlYW51cChmYik7CisJa2ZyZWUoa2ZiKTsKK30KKworc3RhdGlj IGludCBrb21lZGFfZmJfY3JlYXRlX2hhbmRsZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK KwkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHUzMiAqaGFuZGxlKQoreworCXJldHVybiBk cm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwgZmItPm9ialswXSwgaGFuZGxlKTsKK30KKworc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mga29tZWRhX2ZiX2Z1bmNzID0g eworCS5kZXN0cm95CT0ga29tZWRhX2ZiX2Rlc3Ryb3ksCisJLmNyZWF0ZV9oYW5kbGUJPSBrb21l ZGFfZmJfY3JlYXRlX2hhbmRsZSwKK307CisKK3N0YXRpYyBpbnQKK2tvbWVkYV9mYl9ub25lX2Fm YmNfc2l6ZV9jaGVjayhzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiwgc3RydWN0IGtvbWVkYV9mYiAq a2ZiLAorCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKKwkJCSAgICAgICBjb25zdCBz dHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpCit7CisJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSAma2ZiLT5iYXNlOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOworCXUz MiBtaW5fc2l6ZSA9IDA7CisJdTMyIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZmItPmZvcm1hdC0+ bnVtX3BsYW5lczsgaSsrKSB7CisJCW9iaiA9IGRybV9nZW1fb2JqZWN0X2xvb2t1cChmaWxlLCBt b2RlX2NtZC0+aGFuZGxlc1tpXSk7CisJCWlmICghb2JqKSB7CisJCQlEUk1fREVCVUdfS01TKCJG YWlsZWQgdG8gbG9va3VwIEdFTSBvYmplY3RcbiIpOworCQkJZmItPm9ialtpXSA9IE5VTEw7CisK KwkJCXJldHVybiAtRU5PRU5UOworCQl9CisKKwkJa2ZiLT5hbGlnbmVkX3cgPSBmYi0+d2lkdGgg LyAoaSA/IGZiLT5mb3JtYXQtPmhzdWIgOiAxKTsKKwkJa2ZiLT5hbGlnbmVkX2ggPSBmYi0+aGVp Z2h0IC8gKGkgPyBmYi0+Zm9ybWF0LT52c3ViIDogMSk7CisKKwkJaWYgKGZiLT5waXRjaGVzW2ld ICUgbWRldi0+Y2hpcC5idXNfd2lkdGgpIHsKKwkJCURSTV9ERUJVR19LTVMoIlBpdGNoWyVkXTog MHgleCBkb2Vzbid0IGFsaWduIHRvIDB4JXhcbiIsCisJCQkJICAgICAgaSwgZmItPnBpdGNoZXNb aV0sIG1kZXYtPmNoaXAuYnVzX3dpZHRoKTsKKwkJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tl ZChvYmopOworCQkJZmItPm9ialtpXSA9IE5VTEw7CisKKwkJCXJldHVybiAtRUlOVkFMOworCQl9 CisKKwkJbWluX3NpemUgPSAoKGtmYi0+YWxpZ25lZF9oIC8ga2ZiLT5mb3JtYXRfY2Fwcy0+dGls ZV9zaXplIC0gMSkKKwkJCSAgICAqIGZiLT5waXRjaGVzW2ldKQorCQkJICAgICsgKGtmYi0+YWxp Z25lZF93ICogZmItPmZvcm1hdC0+Y3BwW2ldCisJCQkgICAgICAgKiBrZmItPmZvcm1hdF9jYXBz LT50aWxlX3NpemUpCisJCQkgICAgKyBmYi0+b2Zmc2V0c1tpXTsKKworCQlpZiAob2JqLT5zaXpl IDwgbWluX3NpemUpIHsKKwkJCURSTV9ERUJVR19LTVMoIkZhaWwgdG8gY2hlY2sgbm9uZSBhZmJj IGZiIHNpemUuXG4iKTsKKwkJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOworCQkJ ZmItPm9ialtpXSA9IE5VTEw7CisKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZmItPm9i altpXSA9IG9iajsKKwl9CisKKwlpZiAoZmItPmZvcm1hdC0+bnVtX3BsYW5lcyA9PSAzKSB7CisJ CWlmIChmYi0+cGl0Y2hlc1sxXSAhPSBmYi0+cGl0Y2hlc1syXSkgeworCQkJRFJNX0RFQlVHX0tN UygiVGhlIHBpdGNoWzFdIGFuZCBbMl0gYXJlIG5vdCBzYW1lXG4iKTsKKwkJCXJldHVybiAtRUlO VkFMOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBkcm1fZnJhbWVidWZmZXIg Kgora29tZWRhX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUsCisJCSBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpCit7 CisJc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBr b21lZGFfZmIgKmtmYjsKKwlpbnQgcmV0ID0gMCwgaTsKKworCWtmYiA9IGt6YWxsb2Moc2l6ZW9m KCprZmIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWtmYikKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7CisKKwlrZmItPmZvcm1hdF9jYXBzID0ga29tZWRhX2dldF9mb3JtYXRfY2FwcygmbWRldi0+ Zm10X3RibCwKKwkJCQkJCSAgbW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwKKwkJCQkJCSAgbW9kZV9j bWQtPm1vZGlmaWVyWzBdKTsKKwlpZiAoIWtmYi0+Zm9ybWF0X2NhcHMpIHsKKwkJRFJNX0RFQlVH X0tNUygiRk1UICV4IGlzIG5vdCBzdXBwb3J0ZWQuXG4iLAorCQkJICAgICAgbW9kZV9jbWQtPnBp eGVsX2Zvcm1hdCk7CisJCWtmcmVlKGtmYik7CisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwor CX0KKworCWRybV9oZWxwZXJfbW9kZV9maWxsX2ZiX3N0cnVjdChkZXYsICZrZmItPmJhc2UsIG1v ZGVfY21kKTsKKworCXJldCA9IGtvbWVkYV9mYl9ub25lX2FmYmNfc2l6ZV9jaGVjayhtZGV2LCBr ZmIsIGZpbGUsIG1vZGVfY21kKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnJfY2xlYW51cDsK KworCXJldCA9IGRybV9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgJmtmYi0+YmFzZSwgJmtvbWVkYV9m Yl9mdW5jcyk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGlu aXRpYWxpemUgZmJcbiIpOworCisJCWdvdG8gZXJyX2NsZWFudXA7CisJfQorCisJcmV0dXJuICZr ZmItPmJhc2U7CisKK2Vycl9jbGVhbnVwOgorCWZvciAoaSA9IDA7IGkgPCBrZmItPmJhc2UuZm9y bWF0LT5udW1fcGxhbmVzOyBpKyspCisJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChrZmIt PmJhc2Uub2JqW2ldKTsKKworCWtmcmVlKGtmYik7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKK30K KworZG1hX2FkZHJfdAora29tZWRhX2ZiX2dldF9waXhlbF9hZGRyKHN0cnVjdCBrb21lZGFfZmIg KmtmYiwgaW50IHgsIGludCB5LCBpbnQgcGxhbmUpCit7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSAma2ZiLT5iYXNlOworCWNvbnN0IHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKm9i ajsKKwl1MzIgcGxhbmVfeCwgcGxhbmVfeSwgY3BwLCBwaXRjaCwgb2Zmc2V0OworCisJaWYgKHBs YW5lID4gZmItPmZvcm1hdC0+bnVtX3BsYW5lcykgeworCQlEUk1fREVCVUdfS01TKCJPdXQgb2Yg bWF4IHBsYW5lIG51bS5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlvYmogPSBkcm1f ZmJfY21hX2dldF9nZW1fb2JqKGZiLCBwbGFuZSk7CisKKwlvZmZzZXQgPSBmYi0+b2Zmc2V0c1tw bGFuZV07CisJaWYgKCFmYi0+bW9kaWZpZXIpIHsKKwkJcGxhbmVfeCA9IHggLyAocGxhbmUgPyBm Yi0+Zm9ybWF0LT5oc3ViIDogMSk7CisJCXBsYW5lX3kgPSB5IC8gKHBsYW5lID8gZmItPmZvcm1h dC0+dnN1YiA6IDEpOworCQljcHAgPSBmYi0+Zm9ybWF0LT5jcHBbcGxhbmVdOworCQlwaXRjaCA9 IGZiLT5waXRjaGVzW3BsYW5lXTsKKwkJb2Zmc2V0ICs9IHBsYW5lX3ggKiBjcHAgKiAga2ZiLT5m b3JtYXRfY2Fwcy0+dGlsZV9zaXplICsKKwkJCQkocGxhbmVfeSAqIHBpdGNoKSAvIGtmYi0+Zm9y bWF0X2NhcHMtPnRpbGVfc2l6ZTsKKwl9CisKKwlyZXR1cm4gb2JqLT5wYWRkciArIG9mZnNldDsK K30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2ZyYW1lYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV9mcmFtZWJ1ZmZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MzgzNzgwMDEzYmI5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNw bGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuaApAQCAtMCwwICsxLDMxIEBACisvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyoKKyAqIChDKSBDT1BZUklHSFQgMjAx OCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIEF1dGhvcjogSmFtZXMuUWlh bi5XYW5nIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNvbT4KKyAqCisgKi8KKyNpZm5kZWYgX0tPTUVE QV9GUkFNRUJVRkZFUl9IXworI2RlZmluZSBfS09NRURBX0ZSQU1FQlVGRkVSX0hfCisKKy8qKiBz dHJ1Y3Qga29tZWRhX2ZiIC0gZW50ZW5kIGRybV9mcmFtZWJ1ZmZlciB3aXRoIGtvbWVkYSBhdHRy aWJ1dGUgKi8KK3N0cnVjdCBrb21lZGFfZmIgeworCS8qKiBAYmFzZTogJmRybV9mcmFtZWJ1ZmZl ciAqLworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgYmFzZTsKKwkvKiBAZm9ybWF0X2NhcHM6ICZr b21lZGFfZm9ybWF0X2NhcHMgKi8KKwljb25zdCBzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9jYXBzICpm b3JtYXRfY2FwczsKKwkvKiogQGFsaWduZWRfdzogYWxpZ25lZCBmcmFtZSBidWZmZXIgd2lkdGgg Ki8KKwl1MzIgYWxpZ25lZF93OworCS8qKiBAYWxpZ25lZF9oOiBhbGlnbmVkIGZyYW1lIGJ1ZmZl ciBoZWlnaHQgKi8KKwl1MzIgYWxpZ25lZF9oOworfTsKKworI2RlZmluZSB0b19rZmIoZGZiKQlj b250YWluZXJfb2YoZGZiLCBzdHJ1Y3Qga29tZWRhX2ZiLCBiYXNlKQorCitzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICoKK2tvbWVkYV9mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGRybV9maWxlICpmaWxlLAorCQkgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1v ZGVfY21kKTsKK2RtYV9hZGRyX3QKK2tvbWVkYV9mYl9nZXRfcGl4ZWxfYWRkcihzdHJ1Y3Qga29t ZWRhX2ZiICprZmIsIGludCB4LCBpbnQgeSwgaW50IHBsYW5lKTsKK2Jvb2wga29tZWRhX2ZiX2lz X2xheWVyX3N1cHBvcnRlZChzdHJ1Y3Qga29tZWRhX2ZiICprZmIsIHUzMiBsYXllcl90eXBlKTsK KworI2VuZGlmCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=