From mboxrd@z Thu Jan 1 00:00:00 1970 From: yannick fertre Subject: [PATCH v2 01/10] video: stm32: stm32_ltdc: add bridge to display controller Date: Fri, 2 Mar 2018 16:44:02 +0100 Message-ID: <1520005451-23217-2-git-send-email-yannick.fertre@st.com> References: <1520005451-23217-1-git-send-email-yannick.fertre@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3D2886E17B for ; Fri, 2 Mar 2018 15:44:34 +0000 (UTC) In-Reply-To: <1520005451-23217-1-git-send-email-yannick.fertre@st.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Vikas Manocha , Benjamin Gaignard , Yannick Fertre , Philippe Cornu , Patrice Chotard , Patrick DELAUNAY , Christophe KERELLO , Archit Taneja , Andrzej Hajda , Laurent Pinchart , David Airlie , Brian Norris , Bhumika Goyal , Gustavo Padovan , Maarten Lankhorst , Sean Paul , Albert Aribaud , Simon Glass , Anatolij Gustschin , Thierry Reding Cc: u-boot@lists.denx.de, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org TWFuYWdlIGEgYnJpZGdlIGluc2VydCBiZXR3ZWVuIHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgJiBh IHBhbmVsLgoKU2lnbmVkLW9mZi1ieTogeWFubmljayBmZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0 LmNvbT4KLS0tCiBkcml2ZXJzL3ZpZGVvL3N0bTMyL3N0bTMyX2x0ZGMuYyB8IDEwNyArKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MSBpbnNl cnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3N0 bTMyL3N0bTMyX2x0ZGMuYyBiL2RyaXZlcnMvdmlkZW8vc3RtMzIvc3RtMzJfbHRkYy5jCmluZGV4 IGUxNjBjNzcuLmJkOWMwZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vc3RtMzIvc3RtMzJf bHRkYy5jCisrKyBiL2RyaXZlcnMvdmlkZW8vc3RtMzIvc3RtMzJfbHRkYy5jCkBAIC04LDYgKzgs NyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8Y2xrLmg+CisjaW5jbHVkZSA8 ZGlzcGxheS5oPgogI2luY2x1ZGUgPGRtLmg+CiAjaW5jbHVkZSA8cGFuZWwuaD4KICNpbmNsdWRl IDxyZXNldC5oPgpAQCAtMTUsMTIgKzE2LDEyIEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5j bHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgogI2luY2x1ZGUgPGRtL2RldmljZS1pbnRlcm5hbC5oPgor I2luY2x1ZGUgPHZpZGVvX2JyaWRnZS5oPgogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAog c3RydWN0IHN0bTMyX2x0ZGNfcHJpdiB7CiAJdm9pZCBfX2lvbWVtICpyZWdzOwotCXN0cnVjdCBk aXNwbGF5X3RpbWluZyB0aW1pbmc7CiAJZW51bSB2aWRlb19sb2cyX2JwcCBsMmJwcDsKIAl1MzIg YmdfY29sX2FyZ2I7CiAJdTMyIGNyb3BfeCwgY3JvcF95LCBjcm9wX3csIGNyb3BfaDsKQEAgLTIx MCwyMyArMjExLDIzIEBAIHN0YXRpYyB2b2lkIHN0bTMyX2x0ZGNfZW5hYmxlKHN0cnVjdCBzdG0z Ml9sdGRjX3ByaXYgKnByaXYpCiAJc2V0Yml0c19sZTMyKHByaXYtPnJlZ3MgKyBMVERDX0dDUiwg R0NSX0xURENFTik7CiB9CiAKLXN0YXRpYyB2b2lkIHN0bTMyX2x0ZGNfc2V0X21vZGUoc3RydWN0 IHN0bTMyX2x0ZGNfcHJpdiAqcHJpdikKK3N0YXRpYyB2b2lkIHN0bTMyX2x0ZGNfc2V0X21vZGUo c3RydWN0IHN0bTMyX2x0ZGNfcHJpdiAqcHJpdiwKKwkJCQlzdHJ1Y3QgZGlzcGxheV90aW1pbmcg KnRpbWluZ3MpCiB7CiAJdm9pZCBfX2lvbWVtICpyZWdzID0gcHJpdi0+cmVnczsKLQlzdHJ1Y3Qg ZGlzcGxheV90aW1pbmcgKnRpbWluZyA9ICZwcml2LT50aW1pbmc7CiAJdTMyIGhzeW5jLCB2c3lu YywgYWNjX2hicCwgYWNjX3ZicCwgYWNjX2FjdF93LCBhY2NfYWN0X2g7CiAJdTMyIHRvdGFsX3cs IHRvdGFsX2g7CiAJdTMyIHZhbDsKIAogCS8qIENvbnZlcnQgdmlkZW8gdGltaW5ncyB0byBsdGRj IHRpbWluZ3MgKi8KLQloc3luYyA9IHRpbWluZy0+aHN5bmNfbGVuLnR5cCAtIDE7Ci0JdnN5bmMg PSB0aW1pbmctPnZzeW5jX2xlbi50eXAgLSAxOwotCWFjY19oYnAgPSBoc3luYyArIHRpbWluZy0+ aGJhY2tfcG9yY2gudHlwOwotCWFjY192YnAgPSB2c3luYyArIHRpbWluZy0+dmJhY2tfcG9yY2gu dHlwOwotCWFjY19hY3RfdyA9IGFjY19oYnAgKyB0aW1pbmctPmhhY3RpdmUudHlwOwotCWFjY19h Y3RfaCA9IGFjY192YnAgKyB0aW1pbmctPnZhY3RpdmUudHlwOwotCXRvdGFsX3cgPSBhY2NfYWN0 X3cgKyB0aW1pbmctPmhmcm9udF9wb3JjaC50eXA7Ci0JdG90YWxfaCA9IGFjY19hY3RfaCArIHRp bWluZy0+dmZyb250X3BvcmNoLnR5cDsKKwloc3luYyA9IHRpbWluZ3MtPmhzeW5jX2xlbi50eXAg LSAxOworCXZzeW5jID0gdGltaW5ncy0+dnN5bmNfbGVuLnR5cCAtIDE7CisJYWNjX2hicCA9IGhz eW5jICsgdGltaW5ncy0+aGJhY2tfcG9yY2gudHlwOworCWFjY192YnAgPSB2c3luYyArIHRpbWlu Z3MtPnZiYWNrX3BvcmNoLnR5cDsKKwlhY2NfYWN0X3cgPSBhY2NfaGJwICsgdGltaW5ncy0+aGFj dGl2ZS50eXA7CisJYWNjX2FjdF9oID0gYWNjX3ZicCArIHRpbWluZ3MtPnZhY3RpdmUudHlwOwor CXRvdGFsX3cgPSBhY2NfYWN0X3cgKyB0aW1pbmdzLT5oZnJvbnRfcG9yY2gudHlwOworCXRvdGFs X2ggPSBhY2NfYWN0X2ggKyB0aW1pbmdzLT52ZnJvbnRfcG9yY2gudHlwOwogCiAJLyogU3luY2hy b25pemF0aW9uIHNpemVzICovCiAJdmFsID0gKGhzeW5jIDw8IDE2KSB8IHZzeW5jOwpAQCAtMjQ4 LDE0ICsyNDksMTQgQEAgc3RhdGljIHZvaWQgc3RtMzJfbHRkY19zZXRfbW9kZShzdHJ1Y3Qgc3Rt MzJfbHRkY19wcml2ICpwcml2KQogCiAJLyogU2lnbmFsIHBvbGFyaXRpZXMgKi8KIAl2YWwgPSAw OwotCWRlYnVnKCIlczogdGltaW5nLT5mbGFncyAweCUwOHhcbiIsIF9fZnVuY19fLCB0aW1pbmct PmZsYWdzKTsKLQlpZiAodGltaW5nLT5mbGFncyAmIERJU1BMQVlfRkxBR1NfSFNZTkNfSElHSCkK KwlkZWJ1ZygiJXM6IHRpbWluZy0+ZmxhZ3MgMHglMDh4XG4iLCBfX2Z1bmNfXywgdGltaW5ncy0+ ZmxhZ3MpOworCWlmICh0aW1pbmdzLT5mbGFncyAmIERJU1BMQVlfRkxBR1NfSFNZTkNfSElHSCkK IAkJdmFsIHw9IEdDUl9IU1BPTDsKLQlpZiAodGltaW5nLT5mbGFncyAmIERJU1BMQVlfRkxBR1Nf VlNZTkNfSElHSCkKKwlpZiAodGltaW5ncy0+ZmxhZ3MgJiBESVNQTEFZX0ZMQUdTX1ZTWU5DX0hJ R0gpCiAJCXZhbCB8PSBHQ1JfVlNQT0w7Ci0JaWYgKHRpbWluZy0+ZmxhZ3MgJiBESVNQTEFZX0ZM QUdTX0RFX0hJR0gpCisJaWYgKHRpbWluZ3MtPmZsYWdzICYgRElTUExBWV9GTEFHU19ERV9ISUdI KQogCQl2YWwgfD0gR0NSX0RFUE9MOwotCWlmICh0aW1pbmctPmZsYWdzICYgRElTUExBWV9GTEFH U19QSVhEQVRBX05FR0VER0UpCisJaWYgKHRpbWluZ3MtPmZsYWdzICYgRElTUExBWV9GTEFHU19Q SVhEQVRBX05FR0VER0UpCiAJCXZhbCB8PSBHQ1JfUENQT0w7CiAJY2xyc2V0Yml0c19sZTMyKHJl Z3MgKyBMVERDX0dDUiwKIAkJCUdDUl9IU1BPTCB8IEdDUl9WU1BPTCB8IEdDUl9ERVBPTCB8IEdD Ul9QQ1BPTCwgdmFsKTsKQEAgLTMzMSw3ICszMzIsMTEgQEAgc3RhdGljIGludCBzdG0zMl9sdGRj X3Byb2JlKHN0cnVjdCB1ZGV2aWNlICpkZXYpCiAJc3RydWN0IHZpZGVvX3VjX3BsYXRkYXRhICp1 Y19wbGF0ID0gZGV2X2dldF91Y2xhc3NfcGxhdGRhdGEoZGV2KTsKIAlzdHJ1Y3QgdmlkZW9fcHJp diAqdWNfcHJpdiA9IGRldl9nZXRfdWNsYXNzX3ByaXYoZGV2KTsKIAlzdHJ1Y3Qgc3RtMzJfbHRk Y19wcml2ICpwcml2ID0gZGV2X2dldF9wcml2KGRldik7Ci0Jc3RydWN0IHVkZXZpY2UgKnBhbmVs OworI2lmZGVmIENPTkZJR19WSURFT19CUklER0UKKwlzdHJ1Y3QgdWRldmljZSAqYnJpZGdlID0g TlVMTDsKKyNlbmRpZgorCXN0cnVjdCB1ZGV2aWNlICpwYW5lbCA9IE5VTEw7CisJc3RydWN0IGRp c3BsYXlfdGltaW5nIHRpbWluZ3M7CiAJc3RydWN0IGNsayBwY2xrOwogCXN0cnVjdCByZXNldF9j dGwgcnN0OwogCWludCByYXRlLCByZXQ7CkBAIC0zNjQsNjMgKzM2OSw5MyBAQCBzdGF0aWMgaW50 IHN0bTMyX2x0ZGNfcHJvYmUoc3RydWN0IHVkZXZpY2UgKmRldikKIAkvKiBSZXNldCAqLwogCXJl c2V0X2RlYXNzZXJ0KCZyc3QpOwogCi0JcmV0ID0gdWNsYXNzX2ZpcnN0X2RldmljZShVQ0xBU1Nf UEFORUwsICZwYW5lbCk7CisjaWZkZWYgQ09ORklHX1ZJREVPX0JSSURHRQorCXJldCA9IHVjbGFz c19nZXRfZGV2aWNlKFVDTEFTU19WSURFT19CUklER0UsIDAsICZicmlkZ2UpOwogCWlmIChyZXQp IHsKLQkJZGVidWcoIiVzOiBwYW5lbCBkZXZpY2UgZXJyb3IgJWRcbiIsIF9fZnVuY19fLCByZXQp OwotCQlyZXR1cm4gcmV0OworCQlkZWJ1ZygiJXM6IE5vIHZpZGVvIGJyaWRnZSwgb3Igbm8gYmFj a2xpZ2h0IG9uIGJyaWRnZVxuIiwKKwkJICAgICAgX19mdW5jX18pOwogCX0KIAotCXJldCA9IHBh bmVsX2VuYWJsZV9iYWNrbGlnaHQocGFuZWwpOworCWlmIChicmlkZ2UpIHsKKwkJcmV0ID0gdmlk ZW9fYnJpZGdlX2F0dGFjaChicmlkZ2UpOworCQlpZiAocmV0KSB7CisJCQlkZWJ1ZygiJXM6IGZh aWwgdG8gYXR0YWNoIGJyaWRnZVxuIiwgX19mdW5jX18pOworCQkJcmV0dXJuIHJldDsKKwkJfQor CX0KKyNlbmRpZgorCXJldCA9IHVjbGFzc19maXJzdF9kZXZpY2UoVUNMQVNTX1BBTkVMLCAmcGFu ZWwpOwogCWlmIChyZXQpIHsKLQkJZGVidWcoIiVzOiBwYW5lbCAlcyBlbmFibGUgYmFja2xpZ2h0 IGVycm9yICVkXG4iLAotCQkgICAgICBfX2Z1bmNfXywgcGFuZWwtPm5hbWUsIHJldCk7CisJCWRl YnVnKCIlczogcGFuZWwgZGV2aWNlIGVycm9yICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKIAkJcmV0 dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBmZHRkZWNfZGVjb2RlX2Rpc3BsYXlfdGltaW5nKGdkLT5m ZHRfYmxvYiwKLQkJCQkJICAgZGV2X29mX29mZnNldChkZXYpLCAwLAotCQkJCQkgICAmcHJpdi0+ dGltaW5nKTsKKwlyZXQgPSBmZHRkZWNfZGVjb2RlX2Rpc3BsYXlfdGltaW5nKGdkLT5mZHRfYmxv YiwgZGV2X29mX29mZnNldChwYW5lbCksCisJCQkJCSAgIDAsICZ0aW1pbmdzKTsKIAlpZiAocmV0 KSB7CiAJCWRlYnVnKCIlczogZGVjb2RlIGRpc3BsYXkgdGltaW5nIGVycm9yICVkXG4iLAogCQkg ICAgICBfX2Z1bmNfXywgcmV0KTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiByZXQ7CiAJ fQogCi0JcmF0ZSA9IGNsa19zZXRfcmF0ZSgmcGNsaywgcHJpdi0+dGltaW5nLnBpeGVsY2xvY2su dHlwKTsKKwlyYXRlID0gY2xrX3NldF9yYXRlKCZwY2xrLCB0aW1pbmdzLnBpeGVsY2xvY2sudHlw KTsKIAlpZiAocmF0ZSA8IDApIHsKIAkJZGVidWcoIiVzOiBmYWlsIHRvIHNldCBwaXhlbCBjbG9j ayAlZCBoeiAlZCBoelxuIiwKLQkJICAgICAgX19mdW5jX18sIHByaXYtPnRpbWluZy5waXhlbGNs b2NrLnR5cCwgcmF0ZSk7CisJCSAgICAgIF9fZnVuY19fLCB0aW1pbmdzLnBpeGVsY2xvY2sudHlw LCByYXRlKTsKIAkJcmV0dXJuIHJhdGU7CiAJfQogCiAJZGVidWcoIiVzOiBTZXQgcGl4ZWwgY2xv Y2sgcmVxICVkIGh6IGdldCAlZCBoelxuIiwgX19mdW5jX18sCi0JICAgICAgcHJpdi0+dGltaW5n LnBpeGVsY2xvY2sudHlwLCByYXRlKTsKKwkgICAgICB0aW1pbmdzLnBpeGVsY2xvY2sudHlwLCBy YXRlKTsKIAogCS8qIFRPRE8gQmVsb3cgcGFyYW1ldGVycyBhcmUgaGFyZC1jb2RlZCBmb3IgdGhl IG1vbWVudC4uLiAqLwogCXByaXYtPmwyYnBwID0gVklERU9fQlBQMTY7CiAJcHJpdi0+YmdfY29s X2FyZ2IgPSAweEZGRkZGRkZGOyAvKiB3aGl0ZSBubyB0cmFuc3BhcmVuY3kgKi8KIAlwcml2LT5j cm9wX3ggPSAwOwogCXByaXYtPmNyb3BfeSA9IDA7Ci0JcHJpdi0+Y3JvcF93ID0gcHJpdi0+dGlt aW5nLmhhY3RpdmUudHlwOwotCXByaXYtPmNyb3BfaCA9IHByaXYtPnRpbWluZy52YWN0aXZlLnR5 cDsKKwlwcml2LT5jcm9wX3cgPSB0aW1pbmdzLmhhY3RpdmUudHlwOworCXByaXYtPmNyb3BfaCA9 IHRpbWluZ3MudmFjdGl2ZS50eXA7CiAJcHJpdi0+YWxwaGEgPSAweEZGOwogCiAJZGVidWcoIiVz OiAlZHglZCAlZGJwcCBmcmFtZSBidWZmZXIgYXQgMHglbHhcbiIsIF9fZnVuY19fLAotCSAgICAg IHByaXYtPnRpbWluZy5oYWN0aXZlLnR5cCwgcHJpdi0+dGltaW5nLnZhY3RpdmUudHlwLAorCSAg ICAgIHRpbWluZ3MuaGFjdGl2ZS50eXAsIHRpbWluZ3MudmFjdGl2ZS50eXAsCiAJICAgICAgVk5C SVRTKHByaXYtPmwyYnBwKSwgdWNfcGxhdC0+YmFzZSk7CiAJZGVidWcoIiVzOiBjcm9wICVkLCVk ICVkeCVkIGJnIDB4JTA4eCBhbHBoYSAlZFxuIiwgX19mdW5jX18sCiAJICAgICAgcHJpdi0+Y3Jv cF94LCBwcml2LT5jcm9wX3ksIHByaXYtPmNyb3BfdywgcHJpdi0+Y3JvcF9oLAogCSAgICAgIHBy aXYtPmJnX2NvbF9hcmdiLCBwcml2LT5hbHBoYSk7CiAKIAkvKiBDb25maWd1cmUgJiBzdGFydCBM VERDICovCi0Jc3RtMzJfbHRkY19zZXRfbW9kZShwcml2KTsKKwlzdG0zMl9sdGRjX3NldF9tb2Rl KHByaXYsICZ0aW1pbmdzKTsKIAlzdG0zMl9sdGRjX3NldF9sYXllcjEocHJpdiwgdWNfcGxhdC0+ YmFzZSk7CiAJc3RtMzJfbHRkY19lbmFibGUocHJpdik7CiAKLQl1Y19wcml2LT54c2l6ZSA9IHBy aXYtPnRpbWluZy5oYWN0aXZlLnR5cDsKLQl1Y19wcml2LT55c2l6ZSA9IHByaXYtPnRpbWluZy52 YWN0aXZlLnR5cDsKKwl1Y19wcml2LT54c2l6ZSA9IHRpbWluZ3MuaGFjdGl2ZS50eXA7CisJdWNf cHJpdi0+eXNpemUgPSB0aW1pbmdzLnZhY3RpdmUudHlwOwogCXVjX3ByaXYtPmJwaXggPSBwcml2 LT5sMmJwcDsKIAorI2lmZGVmIENPTkZJR19WSURFT19CUklER0UKKwlpZiAoYnJpZGdlKSB7CisJ CXJldCA9IHZpZGVvX2JyaWRnZV9zZXRfYmFja2xpZ2h0KGJyaWRnZSwgODApOworCQlpZiAocmV0 KSB7CisJCQlkZWJ1ZygiJXM6IGZhaWwgdG8gc2V0IGJhY2tsaWdodFxuIiwgX19mdW5jX18pOwor CQkJcmV0dXJuIHJldDsKKwkJfQorCX0gZWxzZSB7CisJCXJldCA9IHBhbmVsX2VuYWJsZV9iYWNr bGlnaHQocGFuZWwpOworCQlpZiAocmV0KSB7CisJCQlkZWJ1ZygiJXM6IHBhbmVsICVzIGVuYWJs ZSBiYWNrbGlnaHQgZXJyb3IgJWRcbiIsCisJCQkgICAgICBfX2Z1bmNfXywgcGFuZWwtPm5hbWUs IHJldCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorI2Vsc2UKKwlyZXQgPSBwYW5lbF9lbmFi bGVfYmFja2xpZ2h0KHBhbmVsKTsKKwlpZiAocmV0KSB7CisJCWRlYnVnKCIlczogcGFuZWwgJXMg ZW5hYmxlIGJhY2tsaWdodCBlcnJvciAlZFxuIiwKKwkJICAgICAgX19mdW5jX18sIHBhbmVsLT5u YW1lLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKyNlbmRpZgogCXZpZGVvX3NldF9mbHVzaF9k Y2FjaGUoZGV2LCB0cnVlKTsKIAogCXJldHVybiAwOwotLSAKMS45LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=