From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: [PATCH v2 6/9] drm/komeda: Add komeda_framebuffer Date: Wed, 19 Dec 2018 12:34:16 +0000 Message-ID: <20181219123147.16090-7-james.qian.wang@arm.com> References: <20181219123147.16090-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: <20181219123147.16090-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 ClNpZ25lZC1vZmYtYnk6IEphbWVzIChRaWFuKSBXYW5nIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxlICAgfCAg IDMgKy0KIC4uLi9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmMgICB8IDE2 NSArKysrKysrKysrKysrKysrKysKIC4uLi9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1l YnVmZmVyLmggICB8ICAzMSArKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmgKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxlIGIv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9NYWtlZmlsZQppbmRleCBjODY2MDIx MzFkYmMuLmQzNjkzMTdmNzJhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNw bGF5L2tvbWVkYS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29t ZWRhL01ha2VmaWxlCkBAIC04LDcgKzgsOCBAQCBrb21lZGEteSA6PSBcCiAJa29tZWRhX2Rydi5v IFwKIAlrb21lZGFfZGV2Lm8gXAogCWtvbWVkYV9mb3JtYXRfY2Fwcy5vIFwKLQlrb21lZGFfcGlw ZWxpbmUubworCWtvbWVkYV9waXBlbGluZS5vIFwKKwlrb21lZGFfZnJhbWVidWZmZXIubwogCiBr b21lZGEteSArPSBcCiAJZDcxL2Q3MV9kZXYubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45OTEyZDZjYzRjNGYKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1ZmZlci5j CkBAIC0wLDAgKzEsMTY1IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAor LyoKKyAqIChDKSBDT1BZUklHSFQgMjAxOCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KKyAqIEF1dGhvcjogSmFtZXMuUWlhbi5XYW5nIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNvbT4K KyAqCisgKi8KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2Vt X2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5o PgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlICJrb21lZGFf ZnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJrb21lZGFfZGV2LmgiCisKK3N0YXRpYyB2b2lkIGtv bWVkYV9mYl9kZXN0cm95KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQoreworCXN0cnVjdCBr b21lZGFfZmIgKmtmYiA9IHRvX2tmYihmYik7CisJdTMyIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwg ZmItPmZvcm1hdC0+bnVtX3BsYW5lczsgaSsrKQorCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2Nr ZWQoZmItPm9ialtpXSk7CisKKwlkcm1fZnJhbWVidWZmZXJfY2xlYW51cChmYik7CisJa2ZyZWUo a2ZiKTsKK30KKworc3RhdGljIGludCBrb21lZGFfZmJfY3JlYXRlX2hhbmRsZShzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKKwkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHUzMiAqaGFu ZGxlKQoreworCXJldHVybiBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwgZmItPm9ialswXSwg aGFuZGxlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mg a29tZWRhX2ZiX2Z1bmNzID0geworCS5kZXN0cm95IAk9IGtvbWVkYV9mYl9kZXN0cm95LAorCS5j cmVhdGVfaGFuZGxlIAk9IGtvbWVkYV9mYl9jcmVhdGVfaGFuZGxlLAorfTsKKworc3RhdGljIGlu dAora29tZWRhX2ZiX25vbmVfYWZiY19zaXplX2NoZWNrKHN0cnVjdCBrb21lZGFfZGV2ICptZGV2 LCBzdHJ1Y3Qga29tZWRhX2ZiICprZmIsCisJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxl LAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKK3sK KwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9ICZrZmItPmJhc2U7CisJc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmo7CisJdTMyIG1pbl9zaXplID0gMDsKKwl1MzIgaTsKKworCWZvciAoaSA9 IDA7IGkgPCBmYi0+Zm9ybWF0LT5udW1fcGxhbmVzOyBpKyspIHsKKwkJb2JqID0gZHJtX2dlbV9v YmplY3RfbG9va3VwKGZpbGUsIG1vZGVfY21kLT5oYW5kbGVzW2ldKTsKKwkJaWYgKCFvYmopIHsK KwkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBsb29rdXAgR0VNIG9iamVjdFxuIik7CisJCQlm Yi0+b2JqW2ldID0gTlVMTDsKKworCQkJcmV0dXJuIC1FTk9FTlQ7CisJCX0KKworCQlrZmItPmFs aWduZWRfdyA9IGZiLT53aWR0aCAvIChpID8gZmItPmZvcm1hdC0+aHN1YiA6IDEpOworCQlrZmIt PmFsaWduZWRfaCA9IGZiLT5oZWlnaHQgLyAoaSA/IGZiLT5mb3JtYXQtPnZzdWIgOiAxKTsKKwor CQlpZiAoZmItPnBpdGNoZXNbaV0gJSBtZGV2LT5jaGlwLmJ1c193aWR0aCkgeworCQkJRFJNX0RF QlVHX0tNUygiUGl0Y2hbJWRdOiAweCV4IGRvZXNuJ3QgYWxpZ25lZCAweCV4XG4iLAorCQkJCSAg IGksIGZiLT5waXRjaGVzW2ldLCBtZGV2LT5jaGlwLmJ1c193aWR0aCk7CisJCQlkcm1fZ2VtX29i amVjdF9wdXRfdW5sb2NrZWQob2JqKTsKKwkJCWZiLT5vYmpbaV0gPSBOVUxMOworCisJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJfQorCisJCW1pbl9zaXplID0gKChrZmItPmFsaWduZWRfaCAvIGtmYi0+ Zm9ybWF0X2NhcHMtPnRpbGVfc2l6ZSAtIDEpCisJCQkgICAgKiBmYi0+cGl0Y2hlc1tpXSkKKwkJ CSAgICArIChrZmItPmFsaWduZWRfdyAqIGZiLT5mb3JtYXQtPmNwcFtpXQorCQkJICAgICAgICog a2ZiLT5mb3JtYXRfY2Fwcy0+dGlsZV9zaXplKQorCQkJICAgICsgZmItPm9mZnNldHNbaV07CisK KwkJaWYgKG9iai0+c2l6ZSA8IG1pbl9zaXplKSB7CisJCQlEUk1fREVCVUdfS01TKCJGYWlsIHRv IGNoZWNrIG5vbmUgYWZiYyBmYiBzaXplLlxuIik7CisJCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5s b2NrZWQob2JqKTsKKwkJCWZiLT5vYmpbaV0gPSBOVUxMOworCisJCQlyZXR1cm4gLUVJTlZBTDsK KwkJfQorCisJCWZiLT5vYmpbaV0gPSBvYmo7CisJfQorCisJaWYgKGZiLT5mb3JtYXQtPm51bV9w bGFuZXMgPT0gMykgeworCQlpZiAoZmItPnBpdGNoZXNbMV0gIT0gZmItPnBpdGNoZXNbMl0pIHsK KwkJCURSTV9ERUJVR19LTVMoIlRoZSBwaXRjaFsxXSBhbmQgWzJdIGFyZSBub3Qgc2FtZVxuIik7 CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICoKK2tvbWVkYV9mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGRybV9maWxlICpmaWxlLAorCQkgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2Nt ZDIgKm1vZGVfY21kKQoreworCXN0cnVjdCBrb21lZGFfZGV2ICptZGV2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKKwlzdHJ1Y3Qga29tZWRhX2ZiICprZmI7CisJaW50IHJldCA9IDAsIGk7CisKKwlrZmIg PSBremFsbG9jKHNpemVvZigqa2ZiKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFrZmIpCisJCXJldHVy biBFUlJfUFRSKC1FTk9NRU0pOworCisJa2ZiLT5mb3JtYXRfY2FwcyA9IGtvbWVkYV9nZXRfZm9y bWF0X2NhcHMoJm1kZXYtPmZtdF90YmwsCisJCQkJCQkgIG1vZGVfY21kLT5waXhlbF9mb3JtYXQs CisJCQkJCQkgIG1vZGVfY21kLT5tb2RpZmllclswXSk7CisJaWYgKGtmYi0+Zm9ybWF0X2NhcHMg PT0gTlVMTCkgeworCQlEUk1fREVCVUdfS01TKCJGTVQgJXggaXMgbm90IHN1cHBvcnRlZC5cbiIs CisJCQkgICAgICBtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKKwkJa2ZyZWUoa2ZiKTsKKwkJcmV0 dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJfQorCisJZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3Ry dWN0KGRldiwgJmtmYi0+YmFzZSwgbW9kZV9jbWQpOworCisJcmV0ID0ga29tZWRhX2ZiX25vbmVf YWZiY19zaXplX2NoZWNrKG1kZXYsIGtmYiwgZmlsZSwgbW9kZV9jbWQpOworCWlmIChyZXQgPCAw KQorCQlnb3RvIGVycl9jbGVhbnVwOworCisJcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2 LCAma2ZiLT5iYXNlLCAma29tZWRhX2ZiX2Z1bmNzKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1f REVCVUdfS01TKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBmYlxuIik7CisKKwkJZ290byBlcnJfY2xl YW51cDsKKwl9CisKKwlyZXR1cm4gJmtmYi0+YmFzZTsKKworZXJyX2NsZWFudXA6CisJZm9yKGkg PSAwOyBpIDwga2ZiLT5iYXNlLmZvcm1hdC0+bnVtX3BsYW5lczsgaSsrKQorCQlkcm1fZ2VtX29i amVjdF9wdXRfdW5sb2NrZWQoa2ZiLT5iYXNlLm9ialtpXSk7CisKKwlrZnJlZShrZmIpOworCXJl dHVybiBFUlJfUFRSKHJldCk7Cit9CisKK2RtYV9hZGRyX3QKK2tvbWVkYV9mYl9nZXRfcGl4ZWxf YWRkcihzdHJ1Y3Qga29tZWRhX2ZiICprZmIsIGludCB4LCBpbnQgeSwgaW50IHBsYW5lKQorewor CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gJmtmYi0+YmFzZTsKKwljb25zdCBzdHJ1Y3Qg ZHJtX2dlbV9jbWFfb2JqZWN0ICpvYmo7CisJdTMyIHBsYW5lX3gsIHBsYW5lX3ksIGNwcCwgcGl0 Y2gsIG9mZnNldDsKKworCWlmIChwbGFuZSA+IGZiLT5mb3JtYXQtPm51bV9wbGFuZXMpIHsKKwkJ RFJNX0RFQlVHX0tNUygiT3V0IG9mIG1heCBwbGFuZSBudW0uXG4iKTsKKwkJcmV0dXJuIC1FSU5W QUw7CisJfQorCisJb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgcGxhbmUpOworCisJ b2Zmc2V0ID0gZmItPm9mZnNldHNbcGxhbmVdOworCWlmICghZmItPm1vZGlmaWVyKSB7CisJCXBs YW5lX3ggPSB4IC8gKHBsYW5lID8gZmItPmZvcm1hdC0+aHN1YiA6IDEpOworCQlwbGFuZV95ID0g eSAvIChwbGFuZSA/IGZiLT5mb3JtYXQtPnZzdWIgOiAxKTsKKwkJY3BwID0gZmItPmZvcm1hdC0+ Y3BwW3BsYW5lXTsKKwkJcGl0Y2ggPSBmYi0+cGl0Y2hlc1twbGFuZV07CisJCW9mZnNldCArPSBw bGFuZV94ICogY3BwICogIGtmYi0+Zm9ybWF0X2NhcHMtPnRpbGVfc2l6ZSArCisJCQkJKHBsYW5l X3kgKiBwaXRjaCkgLyBrZmItPmZvcm1hdF9jYXBzLT50aWxlX3NpemU7CisJfQorCisJcmV0dXJu IG9iai0+cGFkZHIgKyBvZmZzZXQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJt L2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mcmFtZWJ1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjM4Mzc4MDAxM2JiOQotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmgKQEAg LTAsMCArMSwzMSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8q CisgKiAoQykgQ09QWVJJR0hUIDIwMTggQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisgKiBBdXRob3I6IEphbWVzLlFpYW4uV2FuZyA8amFtZXMucWlhbi53YW5nQGFybS5jb20+Cisg KgorICovCisjaWZuZGVmIF9LT01FREFfRlJBTUVCVUZGRVJfSF8KKyNkZWZpbmUgX0tPTUVEQV9G UkFNRUJVRkZFUl9IXworCisvKiogc3RydWN0IGtvbWVkYV9mYiAtIGVudGVuZCBkcm1fZnJhbWVi dWZmZXIgd2l0aCBrb21lZGEgYXR0cmlidXRlICovCitzdHJ1Y3Qga29tZWRhX2ZiIHsKKwkvKiog QGJhc2U6ICZkcm1fZnJhbWVidWZmZXIgKi8KKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGJhc2U7 CisJLyogQGZvcm1hdF9jYXBzOiAma29tZWRhX2Zvcm1hdF9jYXBzICovCisJY29uc3Qgc3RydWN0 IGtvbWVkYV9mb3JtYXRfY2FwcyAqZm9ybWF0X2NhcHM7CisJLyoqIEBhbGlnbmVkX3c6IGFsaWdu ZWQgZnJhbWUgYnVmZmVyIHdpZHRoICovCisJdTMyIGFsaWduZWRfdzsKKwkvKiogQGFsaWduZWRf aDogYWxpZ25lZCBmcmFtZSBidWZmZXIgaGVpZ2h0ICovCisJdTMyIGFsaWduZWRfaDsKK307CisK KyNkZWZpbmUgdG9fa2ZiKGRmYikJY29udGFpbmVyX29mKGRmYiwgc3RydWN0IGtvbWVkYV9mYiwg YmFzZSkKKworc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqCitrb21lZGFfZmJfY3JlYXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKKwkJIGNvbnN0IHN0cnVj dCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCk7CitkbWFfYWRkcl90Citrb21lZGFfZmJfZ2V0 X3BpeGVsX2FkZHIoc3RydWN0IGtvbWVkYV9mYiAqa2ZiLCBpbnQgeCwgaW50IHksIGludCBwbGFu ZSk7Citib29sIGtvbWVkYV9mYl9pc19sYXllcl9zdXBwb3J0ZWQoc3RydWN0IGtvbWVkYV9mYiAq a2ZiLCB1MzIgbGF5ZXJfdHlwZSk7CisKKyNlbmRpZgotLSAKMi4xNy4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK