From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: [PATCH v3 6/9] drm/komeda: Add komeda_framebuffer Date: Fri, 21 Dec 2018 10:00:17 +0000 Message-ID: <20181221095757.15510-7-james.qian.wang@arm.com> References: <20181221095757.15510-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: <20181221095757.15510-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 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 a29tZWRhX2ZyYW1lYnVmZmVyIGlzIGZvciBleHRlbmRpbmcgZHJtX2ZyYW1lYnVmZmVyIHRvIGFk ZCBrb21lZGEgb3duCmF0dHJpYnV0ZXMgYW5kIGtvbWVkYSBzcGVjaWZpYyBmYiBoYW5kbGluZy4K CkNoYW5nZXMgaW4gdjM6Ci0gRml4ZWQgc3R5bGUgcHJvYmxlbSBmb3VuZCBieSBjaGVja3BhdGNo LnBsIC0tc3RyaWN0LgoKU2lnbmVkLW9mZi1ieTogSmFtZXMgKFFpYW4pIFdhbmcgPGphbWVzLnFp YW4ud2FuZ0Bhcm0uY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv TWFrZWZpbGUgICB8ICAgMyArLQogLi4uL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVi dWZmZXIuYyAgIHwgMTY1ICsrKysrKysrKysrKysrKysrKwogLi4uL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfZnJhbWVidWZmZXIuaCAgIHwgIDMxICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTk4 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1ZmZlci5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJh bWVidWZmZXIuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxl CmluZGV4IDM5NGZjMmFhNDM0YS4uMjViZWFlOTAwZWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h cm0vZGlzcGxheS9rb21lZGEvTWFrZWZpbGUKQEAgLTgsNyArOCw4IEBAIGtvbWVkYS15IDo9IFwK IAlrb21lZGFfZHJ2Lm8gXAogCWtvbWVkYV9kZXYubyBcCiAJa29tZWRhX2Zvcm1hdF9jYXBzLm8g XAotCWtvbWVkYV9waXBlbGluZS5vCisJa29tZWRhX3BpcGVsaW5lLm8gXAorCWtvbWVkYV9mcmFt ZWJ1ZmZlci5vCiAKIGtvbWVkYS15ICs9IFwKIAlkNzEvZDcxX2Rldi5vCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1ZmZlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRkZGQ1MzE0Y2EyMwotLS0g L2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2ZyYW1lYnVmZmVyLmMKQEAgLTAsMCArMSwxNjUgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wCisvKgorICogKEMpIENPUFlSSUdIVCAyMDE4IEFSTSBMaW1pdGVkLiBBbGwg cmlnaHRzIHJlc2VydmVkLgorICogQXV0aG9yOiBKYW1lcy5RaWFuLldhbmcgPGphbWVzLnFpYW4u d2FuZ0Bhcm0uY29tPgorICoKKyAqLworI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisjaW5jbHVk ZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9m Yl9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fY21hX2hlbHBlci5oPgorI2lu Y2x1ZGUgImtvbWVkYV9mcmFtZWJ1ZmZlci5oIgorI2luY2x1ZGUgImtvbWVkYV9kZXYuaCIKKwor c3RhdGljIHZvaWQga29tZWRhX2ZiX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIp Cit7CisJc3RydWN0IGtvbWVkYV9mYiAqa2ZiID0gdG9fa2ZiKGZiKTsKKwl1MzIgaTsKKworCWZv ciAoaSA9IDA7IGkgPCBmYi0+Zm9ybWF0LT5udW1fcGxhbmVzOyBpKyspCisJCWRybV9nZW1fb2Jq ZWN0X3B1dF91bmxvY2tlZChmYi0+b2JqW2ldKTsKKworCWRybV9mcmFtZWJ1ZmZlcl9jbGVhbnVw KGZiKTsKKwlrZnJlZShrZmIpOworfQorCitzdGF0aWMgaW50IGtvbWVkYV9mYl9jcmVhdGVfaGFu ZGxlKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZSwgdTMyICpoYW5kbGUpCit7CisJcmV0dXJuIGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxl LCBmYi0+b2JqWzBdLCBoYW5kbGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mcmFt ZWJ1ZmZlcl9mdW5jcyBrb21lZGFfZmJfZnVuY3MgPSB7CisJLmRlc3Ryb3kJPSBrb21lZGFfZmJf ZGVzdHJveSwKKwkuY3JlYXRlX2hhbmRsZQk9IGtvbWVkYV9mYl9jcmVhdGVfaGFuZGxlLAorfTsK Kworc3RhdGljIGludAora29tZWRhX2ZiX25vbmVfYWZiY19zaXplX2NoZWNrKHN0cnVjdCBrb21l ZGFfZGV2ICptZGV2LCBzdHJ1Y3Qga29tZWRhX2ZiICprZmIsCisJCQkgICAgICAgc3RydWN0IGRy bV9maWxlICpmaWxlLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpt b2RlX2NtZCkKK3sKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9ICZrZmItPmJhc2U7CisJ c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisJdTMyIG1pbl9zaXplID0gMDsKKwl1MzIgaTsK KworCWZvciAoaSA9IDA7IGkgPCBmYi0+Zm9ybWF0LT5udW1fcGxhbmVzOyBpKyspIHsKKwkJb2Jq ID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbGUsIG1vZGVfY21kLT5oYW5kbGVzW2ldKTsKKwkJ aWYgKCFvYmopIHsKKwkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBsb29rdXAgR0VNIG9iamVj dFxuIik7CisJCQlmYi0+b2JqW2ldID0gTlVMTDsKKworCQkJcmV0dXJuIC1FTk9FTlQ7CisJCX0K KworCQlrZmItPmFsaWduZWRfdyA9IGZiLT53aWR0aCAvIChpID8gZmItPmZvcm1hdC0+aHN1YiA6 IDEpOworCQlrZmItPmFsaWduZWRfaCA9IGZiLT5oZWlnaHQgLyAoaSA/IGZiLT5mb3JtYXQtPnZz dWIgOiAxKTsKKworCQlpZiAoZmItPnBpdGNoZXNbaV0gJSBtZGV2LT5jaGlwLmJ1c193aWR0aCkg eworCQkJRFJNX0RFQlVHX0tNUygiUGl0Y2hbJWRdOiAweCV4IGRvZXNuJ3QgYWxpZ24gdG8gMHgl eFxuIiwKKwkJCQkgICAgICBpLCBmYi0+cGl0Y2hlc1tpXSwgbWRldi0+Y2hpcC5idXNfd2lkdGgp OworCQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7CisJCQlmYi0+b2JqW2ldID0g TlVMTDsKKworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQltaW5fc2l6ZSA9ICgoa2ZiLT5h bGlnbmVkX2ggLyBrZmItPmZvcm1hdF9jYXBzLT50aWxlX3NpemUgLSAxKQorCQkJICAgICogZmIt PnBpdGNoZXNbaV0pCisJCQkgICAgKyAoa2ZiLT5hbGlnbmVkX3cgKiBmYi0+Zm9ybWF0LT5jcHBb aV0KKwkJCSAgICAgICAqIGtmYi0+Zm9ybWF0X2NhcHMtPnRpbGVfc2l6ZSkKKwkJCSAgICArIGZi LT5vZmZzZXRzW2ldOworCisJCWlmIChvYmotPnNpemUgPCBtaW5fc2l6ZSkgeworCQkJRFJNX0RF QlVHX0tNUygiRmFpbCB0byBjaGVjayBub25lIGFmYmMgZmIgc2l6ZS5cbiIpOworCQkJZHJtX2dl bV9vYmplY3RfcHV0X3VubG9ja2VkKG9iaik7CisJCQlmYi0+b2JqW2ldID0gTlVMTDsKKworCQkJ cmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlmYi0+b2JqW2ldID0gb2JqOworCX0KKworCWlmIChm Yi0+Zm9ybWF0LT5udW1fcGxhbmVzID09IDMpIHsKKwkJaWYgKGZiLT5waXRjaGVzWzFdICE9IGZi LT5waXRjaGVzWzJdKSB7CisJCQlEUk1fREVCVUdfS01TKCJUaGUgcGl0Y2hbMV0gYW5kIFsyXSBh cmUgbm90IHNhbWVcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlyZXR1cm4g MDsKK30KKworc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqCitrb21lZGFfZmJfY3JlYXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKKwkJIGNvbnN0IHN0cnVj dCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKK3sKKwlzdHJ1Y3Qga29tZWRhX2RldiAqbWRl diA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGtvbWVkYV9mYiAqa2ZiOworCWludCByZXQg PSAwLCBpOworCisJa2ZiID0ga3phbGxvYyhzaXplb2YoKmtmYiksIEdGUF9LRVJORUwpOworCWlm ICgha2ZiKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWtmYi0+Zm9ybWF0X2NhcHMg PSBrb21lZGFfZ2V0X2Zvcm1hdF9jYXBzKCZtZGV2LT5mbXRfdGJsLAorCQkJCQkJICBtb2RlX2Nt ZC0+cGl4ZWxfZm9ybWF0LAorCQkJCQkJICBtb2RlX2NtZC0+bW9kaWZpZXJbMF0pOworCWlmICgh a2ZiLT5mb3JtYXRfY2FwcykgeworCQlEUk1fREVCVUdfS01TKCJGTVQgJXggaXMgbm90IHN1cHBv cnRlZC5cbiIsCisJCQkgICAgICBtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKKwkJa2ZyZWUoa2Zi KTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJfQorCisJZHJtX2hlbHBlcl9tb2RlX2Zp bGxfZmJfc3RydWN0KGRldiwgJmtmYi0+YmFzZSwgbW9kZV9jbWQpOworCisJcmV0ID0ga29tZWRh X2ZiX25vbmVfYWZiY19zaXplX2NoZWNrKG1kZXYsIGtmYiwgZmlsZSwgbW9kZV9jbWQpOworCWlm IChyZXQgPCAwKQorCQlnb3RvIGVycl9jbGVhbnVwOworCisJcmV0ID0gZHJtX2ZyYW1lYnVmZmVy X2luaXQoZGV2LCAma2ZiLT5iYXNlLCAma29tZWRhX2ZiX2Z1bmNzKTsKKwlpZiAocmV0IDwgMCkg eworCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBmYlxuIik7CisKKwkJZ290 byBlcnJfY2xlYW51cDsKKwl9CisKKwlyZXR1cm4gJmtmYi0+YmFzZTsKKworZXJyX2NsZWFudXA6 CisJZm9yIChpID0gMDsgaSA8IGtmYi0+YmFzZS5mb3JtYXQtPm51bV9wbGFuZXM7IGkrKykKKwkJ ZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGtmYi0+YmFzZS5vYmpbaV0pOworCisJa2ZyZWUo a2ZiKTsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOworfQorCitkbWFfYWRkcl90Citrb21lZGFfZmJf Z2V0X3BpeGVsX2FkZHIoc3RydWN0IGtvbWVkYV9mYiAqa2ZiLCBpbnQgeCwgaW50IHksIGludCBw bGFuZSkKK3sKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9ICZrZmItPmJhc2U7CisJY29u c3Qgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqb2JqOworCXUzMiBwbGFuZV94LCBwbGFuZV95 LCBjcHAsIHBpdGNoLCBvZmZzZXQ7CisKKwlpZiAocGxhbmUgPiBmYi0+Zm9ybWF0LT5udW1fcGxh bmVzKSB7CisJCURSTV9ERUJVR19LTVMoIk91dCBvZiBtYXggcGxhbmUgbnVtLlxuIik7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCW9iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIHBs YW5lKTsKKworCW9mZnNldCA9IGZiLT5vZmZzZXRzW3BsYW5lXTsKKwlpZiAoIWZiLT5tb2RpZmll cikgeworCQlwbGFuZV94ID0geCAvIChwbGFuZSA/IGZiLT5mb3JtYXQtPmhzdWIgOiAxKTsKKwkJ cGxhbmVfeSA9IHkgLyAocGxhbmUgPyBmYi0+Zm9ybWF0LT52c3ViIDogMSk7CisJCWNwcCA9IGZi LT5mb3JtYXQtPmNwcFtwbGFuZV07CisJCXBpdGNoID0gZmItPnBpdGNoZXNbcGxhbmVdOworCQlv ZmZzZXQgKz0gcGxhbmVfeCAqIGNwcCAqICBrZmItPmZvcm1hdF9jYXBzLT50aWxlX3NpemUgKwor CQkJCShwbGFuZV95ICogcGl0Y2gpIC8ga2ZiLT5mb3JtYXRfY2Fwcy0+dGlsZV9zaXplOworCX0K KworCXJldHVybiBvYmotPnBhZGRyICsgb2Zmc2V0OworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuaCBiL2RyaXZlcnMv Z3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zODM3ODAwMTNiYjkKLS0tIC9kZXYvbnVs bAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1 ZmZlci5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wICovCisvKgorICogKEMpIENPUFlSSUdIVCAyMDE4IEFSTSBMaW1pdGVkLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorICogQXV0aG9yOiBKYW1lcy5RaWFuLldhbmcgPGphbWVzLnFpYW4ud2FuZ0Bh cm0uY29tPgorICoKKyAqLworI2lmbmRlZiBfS09NRURBX0ZSQU1FQlVGRkVSX0hfCisjZGVmaW5l IF9LT01FREFfRlJBTUVCVUZGRVJfSF8KKworLyoqIHN0cnVjdCBrb21lZGFfZmIgLSBlbnRlbmQg ZHJtX2ZyYW1lYnVmZmVyIHdpdGgga29tZWRhIGF0dHJpYnV0ZSAqLworc3RydWN0IGtvbWVkYV9m YiB7CisJLyoqIEBiYXNlOiAmZHJtX2ZyYW1lYnVmZmVyICovCisJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciBiYXNlOworCS8qIEBmb3JtYXRfY2FwczogJmtvbWVkYV9mb3JtYXRfY2FwcyAqLworCWNv bnN0IHN0cnVjdCBrb21lZGFfZm9ybWF0X2NhcHMgKmZvcm1hdF9jYXBzOworCS8qKiBAYWxpZ25l ZF93OiBhbGlnbmVkIGZyYW1lIGJ1ZmZlciB3aWR0aCAqLworCXUzMiBhbGlnbmVkX3c7CisJLyoq IEBhbGlnbmVkX2g6IGFsaWduZWQgZnJhbWUgYnVmZmVyIGhlaWdodCAqLworCXUzMiBhbGlnbmVk X2g7Cit9OworCisjZGVmaW5lIHRvX2tmYihkZmIpCWNvbnRhaW5lcl9vZihkZmIsIHN0cnVjdCBr b21lZGFfZmIsIGJhc2UpCisKK3N0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgora29tZWRhX2ZiX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCisJCSBj b25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpOworZG1hX2FkZHJfdAora29t ZWRhX2ZiX2dldF9waXhlbF9hZGRyKHN0cnVjdCBrb21lZGFfZmIgKmtmYiwgaW50IHgsIGludCB5 LCBpbnQgcGxhbmUpOworYm9vbCBrb21lZGFfZmJfaXNfbGF5ZXJfc3VwcG9ydGVkKHN0cnVjdCBr b21lZGFfZmIgKmtmYiwgdTMyIGxheWVyX3R5cGUpOworCisjZW5kaWYKLS0gCjIuMTcuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==