From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v7 7/9] drm/mediatek: add dsi transfer function Date: Fri, 2 Sep 2016 19:24:42 +0800 Message-ID: <1472815484-43821-8-git-send-email-yt.shen@mediatek.com> References: <1472815484-43821-1-git-send-email-yt.shen@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1472815484-43821-1-git-send-email-yt.shen@mediatek.com> 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, Philipp Zabel Cc: Daniel Vetter , Jie Qiu , Mao Huang , yingjoe.chen@mediatek.com, Dan Carpenter , Jitao Shi , linux-mediatek@lists.infradead.org, Matthias Brugger , shaoming chen , linux-arm-kernel@lists.infradead.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Sascha Hauer , Maxime Ripard List-Id: linux-mediatek@lists.infradead.org RnJvbTogc2hhb21pbmcgY2hlbiA8c2hhb21pbmcuY2hlbkBtZWRpYXRlay5jb20+CgphZGQgZHNp IHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRyYW5zZmVyIGZ1bmN0aW9uCgpTaWduZWQtb2ZmLWJ5 OiBzaGFvbWluZyBjaGVuIDxzaGFvbWluZy5jaGVuQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jIHwgMTg4ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxODggaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RzaS5jCmluZGV4IGQyMGY2ZjkuLjExMDNmZjQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kc2kuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29m X2dyYXBoLmg+CiAjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgogI2luY2x1ZGUgPGxpbnV4L3Bs YXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgogI2luY2x1 ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgogCiAjaW5jbHVkZSAibXRrX2RybV9kZHBfY29tcC5oIgpA QCAtODEsOCArODIsMTYgQEAKICNkZWZpbmUgRFNJX0hCUF9XQwkJMHg1NAogI2RlZmluZSBEU0lf SEZQX1dDCQkweDU4CiAKKyNkZWZpbmUgRFNJX0NNRFFfU0laRQkJMHg2MAorI2RlZmluZSBDTURR X1NJWkUJCTB4M2YKKwogI2RlZmluZSBEU0lfSFNUWF9DS0xfV0MJCTB4NjQKIAorI2RlZmluZSBE U0lfUlhfREFUQTAJCTB4NzQKKyNkZWZpbmUgRFNJX1JYX0RBVEExCQkweDc4CisjZGVmaW5lIERT SV9SWF9EQVRBMgkJMHg3YworI2RlZmluZSBEU0lfUlhfREFUQTMJCTB4ODAKKwogI2RlZmluZSBE U0lfUkFDSwkJMHg4NAogI2RlZmluZSBSQUNLCQkJCUJJVCgwKQogCkBAIC0xMTgsOCArMTI3LDIz IEBACiAjZGVmaW5lIENMS19IU19QT1NUCQkJKDB4ZmYgPDwgOCkKICNkZWZpbmUgQ0xLX0hTX0VY SVQJCQkoMHhmZiA8PCAxNikKIAorI2RlZmluZSBEU0lfQ01EUTAJCTB4MTgwCisjZGVmaW5lIENP TkZJRwkJCQkoMHhmZiA8PCAwKQorI2RlZmluZSBTSE9SVF9QQUNLRVQJCQkwCisjZGVmaW5lIExP TkdfUEFDS0VUCQkJMgorI2RlZmluZSBCVEEJCQkJQklUKDIpCisjZGVmaW5lIERBVEFfSUQJCQkJ KDB4ZmYgPDwgOCkKKyNkZWZpbmUgREFUQV8wCQkJCSgweGZmIDw8IDE2KQorI2RlZmluZSBEQVRB XzEJCQkJKDB4ZmYgPDwgMjQpCisKICNkZWZpbmUgTlNfVE9fQ1lDTEUobiwgYykgICAgKChuKSAv IChjKSArICgoKG4pICUgKGMpKSA/IDEgOiAwKSkKIAorI2RlZmluZSBNVEtfRFNJX0hPU1RfSVNf UkVBRCh0eXBlKSBcCisJKCh0eXBlID09IE1JUElfRFNJX0dFTkVSSUNfUkVBRF9SRVFVRVNUXzBf UEFSQU0pIHx8IFwKKwkodHlwZSA9PSBNSVBJX0RTSV9HRU5FUklDX1JFQURfUkVRVUVTVF8xX1BB UkFNKSB8fCBcCisJKHR5cGUgPT0gTUlQSV9EU0lfR0VORVJJQ19SRUFEX1JFUVVFU1RfMl9QQVJB TSkgfHwgXAorCSh0eXBlID09IE1JUElfRFNJX0RDU19SRUFEKSkKKwogc3RydWN0IHBoeTsKIAog c3RydWN0IG10a19kc2kgewpAQCAtNDY1LDYgKzQ4OSwxMSBAQCBzdGF0aWMgdm9pZCBtdGtfZHNp X3NldF9pbnRlcnJ1cHRfZW5hYmxlKHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJd3JpdGVsKGludGVu LCBkc2ktPnJlZ3MgKyBEU0lfSU5URU4pOwogfQogCitzdGF0aWMgdm9pZCBtdGtfZHNpX2lycV9k YXRhX2NsZWFyKHN0cnVjdCBtdGtfZHNpICpkc2ksIHUzMiBpcnFfYml0KQoreworCWRzaS0+aXJx X2RhdGEgJj0gfmlycV9iaXQ7Cit9CisKIHN0YXRpYyB2b2lkIG10a19kc2lfaXJxX2RhdGFfc2V0 KHN0cnVjdCBtdGtfZHNpICpkc2ksIHUzMiBpcnFfYml0KQogewogCWRzaS0+aXJxX2RhdGEgfD0g aXJxX2JpdDsKQEAgLTc4OCw5ICs4MTcsMTY4IEBAIHN0YXRpYyBpbnQgbXRrX2RzaV9ob3N0X2Rl dGFjaChzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGlj IHZvaWQgbXRrX2RzaV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBtdGtfZHNpICpkc2kpCit7CisJdTMy IHRpbWVvdXRfbXMgPSA1MDAwMDA7IC8qIHRvdGFsIDFzIH4gMnMgdGltZW91dCAqLworCisJd2hp bGUgKHRpbWVvdXRfbXMtLSkgeworCQlpZiAoIShyZWFkbChkc2ktPnJlZ3MgKyBEU0lfSU5UU1RB KSAmIERTSV9CVVNZKSkKKwkJCWJyZWFrOworCisJCXVzbGVlcF9yYW5nZSgyLCA0KTsKKwl9CisK KwlpZiAodGltZW91dF9tcyA9PSAwKSB7CisJCWRldl9pbmZvKGRzaS0+ZGV2LCAicG9sbGluZyBk c2kgd2FpdCBub3QgYnVzeSB0aW1lb3V0IVxuIik7CisKKwkJbXRrX2RzaV9lbmFibGUoZHNpKTsK KwkJbXRrX2RzaV9yZXNldF9lbmdpbmUoZHNpKTsKKwl9Cit9CisKK3N0YXRpYyBzMzIgbXRrX2Rz aV93YWl0X2Zvcl9pcnFfZG9uZShzdHJ1Y3QgbXRrX2RzaSAqZHNpLCB1MzIgaXJxX2ZsYWcsCisJ CQkJICAgICB1bnNpZ25lZCBpbnQgdGltZW91dCkKK3sKKwlzMzIgcmV0ID0gMDsKKwl1bnNpZ25l ZCBsb25nIGppZmZpZXMgPSBtc2Vjc190b19qaWZmaWVzKHRpbWVvdXQpOworCisJcmV0ID0gd2Fp dF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoX2RzaV9pcnFfd2FpdF9xdWV1ZSwKKwkJCQkJ ICAgICAgIGRzaS0+aXJxX2RhdGEgJiBpcnFfZmxhZywKKwkJCQkJICAgICAgIGppZmZpZXMpOwor CWlmIChyZXQgPT0gMCkgeworCQlkZXZfaW5mbyhkc2ktPmRldiwgIldhaXQgRFNJIElSUSgweCUw OHgpIFRpbWVvdXRcbiIsIGlycV9mbGFnKTsKKworCQltdGtfZHNpX2VuYWJsZShkc2kpOworCQlt dGtfZHNpX3Jlc2V0X2VuZ2luZShkc2kpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRp YyB1MzIgbXRrX2RzaV9yZWN2X2NudCh1OCB0eXBlLCB1OCAqcmVhZF9kYXRhKQoreworCXN3aXRj aCAodHlwZSkgeworCWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJQ19TSE9SVF9SRUFEX1JFU1BPTlNF XzFCWVRFOgorCWNhc2UgTUlQSV9EU0lfUlhfRENTX1NIT1JUX1JFQURfUkVTUE9OU0VfMUJZVEU6 CisJCXJldHVybiAxOworCWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJQ19TSE9SVF9SRUFEX1JFU1BP TlNFXzJCWVRFOgorCWNhc2UgTUlQSV9EU0lfUlhfRENTX1NIT1JUX1JFQURfUkVTUE9OU0VfMkJZ VEU6CisJCXJldHVybiAyOworCWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJQ19MT05HX1JFQURfUkVT UE9OU0U6CisJY2FzZSBNSVBJX0RTSV9SWF9EQ1NfTE9OR19SRUFEX1JFU1BPTlNFOgorCQlyZXR1 cm4gcmVhZF9kYXRhWzFdICsgcmVhZF9kYXRhWzJdICogMTY7CisJY2FzZSBNSVBJX0RTSV9SWF9B Q0tOT1dMRURHRV9BTkRfRVJST1JfUkVQT1JUOgorCQlEUk1fSU5GTygidHlwZSBpcyAweDAyLCB0 cnkgYWdhaW5cbiIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlEUk1fSU5GTygidHlwZSgweCV4 KSBjYW5ub3QgYmUgbm9uLXJlY29nbml0ZVxuIiwgdHlwZSk7CisJCWJyZWFrOworCX0KKworCXJl dHVybiAwOworfQorCitzdGF0aWMgdm9pZCBtdGtfZHNpX2NtZHEoc3RydWN0IG10a19kc2kgKmRz aSwgY29uc3Qgc3RydWN0IG1pcGlfZHNpX21zZyAqbXNnKQoreworCWNvbnN0IGNoYXIgKnR4X2J1 ZiA9IG1zZy0+dHhfYnVmOworCXU4IGNvbmZpZywgY21kcV9zaXplLCBjbWRxX29mZiwgdHlwZSA9 IG1zZy0+dHlwZTsKKwl1MzIgcmVnX3ZhbCwgY21kcV9tYXNrLCBpOworCisJaWYgKE1US19EU0lf SE9TVF9JU19SRUFEKHR5cGUpKQorCQljb25maWcgPSBCVEE7CisJZWxzZQorCQljb25maWcgPSAo bXNnLT50eF9sZW4gPiAyKSA/IExPTkdfUEFDS0VUIDogU0hPUlRfUEFDS0VUOworCisJaWYgKG1z Zy0+dHhfbGVuID4gMikgeworCQljbWRxX3NpemUgPSAxICsgKG1zZy0+dHhfbGVuICsgMykgLyA0 OworCQljbWRxX29mZiA9IDQ7CisJCWNtZHFfbWFzayA9IENPTkZJRyB8IERBVEFfSUQgfCBEQVRB XzAgfCBEQVRBXzE7CisJCXJlZ192YWwgPSAobXNnLT50eF9sZW4gPDwgMTYpIHwgKHR5cGUgPDwg OCkgfCBjb25maWc7CisJfSBlbHNlIHsKKwkJY21kcV9zaXplID0gMTsKKwkJY21kcV9vZmYgPSAy OworCQljbWRxX21hc2sgPSBDT05GSUcgfCBEQVRBX0lEOworCQlyZWdfdmFsID0gKHR5cGUgPDwg OCkgfCBjb25maWc7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG1zZy0+dHhfbGVuOyBpKyspCisJ CXdyaXRlYih0eF9idWZbaV0sIGRzaS0+cmVncyArIERTSV9DTURRMCArIGNtZHFfb2ZmICsgaSk7 CisKKwltdGtfZHNpX21hc2soZHNpLCBEU0lfQ01EUTAsIGNtZHFfbWFzaywgcmVnX3ZhbCk7CisJ bXRrX2RzaV9tYXNrKGRzaSwgRFNJX0NNRFFfU0laRSwgQ01EUV9TSVpFLCBjbWRxX3NpemUpOwor fQorCitzdGF0aWMgc3NpemVfdCBtdGtfZHNpX2hvc3Rfc2VuZF9jbWQoc3RydWN0IG10a19kc2kg KmRzaSwKKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cgKm1zZywgdTggZmxhZykK K3sKKwltdGtfZHNpX3dhaXRfZm9yX2lkbGUoZHNpKTsKKwltdGtfZHNpX2lycV9kYXRhX2NsZWFy KGRzaSwgZmxhZyk7CisJbXRrX2RzaV9jbWRxKGRzaSwgbXNnKTsKKwltdGtfZHNpX3N0YXJ0KGRz aSk7CisKKwlpZiAoIW10a19kc2lfd2FpdF9mb3JfaXJxX2RvbmUoZHNpLCBmbGFnLCAyMDAwKSkK KwkJcmV0dXJuIC0xOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IG10 a19kc2lfaG9zdF90cmFuc2ZlcihzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKKwkJCQkgICAg IGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cgKm1zZykKK3sKKwlzdHJ1Y3QgbXRrX2RzaSAqZHNp ID0gaG9zdF90b19kc2koaG9zdCk7CisJdTMyIHJlY3ZfY250LCBpOworCXU4IHJlYWRfZGF0YVsx Nl07CisJdm9pZCAqc3JjX2FkZHI7CisJdTggaXJxX2ZsYWcgPSBDTURfRE9ORV9JTlRfRkxBRzsK KworCWlmIChyZWFkbChkc2ktPnJlZ3MgKyBEU0lfTU9ERV9DVFJMKSAmIE1PREUpIHsKKwkJZGV2 X2luZm8oZHNpLT5kZXYsICJkc2kgZW5naW5lIGlzIG5vdCBjb21tYW5kIG1vZGVcbiIpOworCQly ZXR1cm4gLTE7CisJfQorCisJaWYgKE1US19EU0lfSE9TVF9JU19SRUFEKG1zZy0+dHlwZSkpCisJ CWlycV9mbGFnIHw9IExQUlhfUkRfUkRZX0lOVF9GTEFHOworCisJaWYgKG10a19kc2lfaG9zdF9z ZW5kX2NtZChkc2ksIG1zZywgaXJxX2ZsYWcpIDwgMCkKKwkJcmV0dXJuIC0xOworCisJaWYgKCFN VEtfRFNJX0hPU1RfSVNfUkVBRChtc2ctPnR5cGUpKQorCQlyZXR1cm4gMDsKKworCWlmICghbXNn LT5yeF9idWYpIHsKKwkJZGV2X2luZm8oZHNpLT5kZXYsICJkc2kgcmVjZWl2ZSBidWZmZXIgc2l6 ZSBtYXkgYmUgTlVMTFxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwg MTY7IGkrKykKKwkJKihyZWFkX2RhdGEgKyBpKSA9IHJlYWRiKGRzaS0+cmVncyArIERTSV9SWF9E QVRBMCArIGkpOworCisJcmVjdl9jbnQgPSBtdGtfZHNpX3JlY3ZfY250KHJlYWRfZGF0YVswXSwg cmVhZF9kYXRhKTsKKworCWlmIChyZWN2X2NudCA+IDIpCisJCXNyY19hZGRyID0gJnJlYWRfZGF0 YVs0XTsKKwllbHNlCisJCXNyY19hZGRyID0gJnJlYWRfZGF0YVsxXTsKKworCWlmIChyZWN2X2Nu dCA+IDEwKQorCQlyZWN2X2NudCA9IDEwOworCisJaWYgKHJlY3ZfY250ID4gbXNnLT5yeF9sZW4p CisJCXJlY3ZfY250ID0gbXNnLT5yeF9sZW47CisKKwlpZiAocmVjdl9jbnQpCisJCW1lbWNweSht c2ctPnJ4X2J1Ziwgc3JjX2FkZHIsIHJlY3ZfY250KTsKKworCWRldl9pbmZvKGRzaS0+ZGV2LCAi ZHNpIGdldCAlZCBieXRlIGRhdGEgZnJvbSB0aGUgcGFuZWwgYWRkcmVzcygweCV4KVxuIiwKKwkJ IHJlY3ZfY250LCAqKCh1OCAqKShtc2ctPnR4X2J1ZikpKTsKKworCXJldHVybiByZWN2X2NudDsK K30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9ob3N0X29wcyBtdGtfZHNpX29wcyA9 IHsKIAkuYXR0YWNoID0gbXRrX2RzaV9ob3N0X2F0dGFjaCwKIAkuZGV0YWNoID0gbXRrX2RzaV9o b3N0X2RldGFjaCwKKwkudHJhbnNmZXIgPSBtdGtfZHNpX2hvc3RfdHJhbnNmZXIsCiB9OwogCiBz dGF0aWMgaW50IG10a19kc2lfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Ug Km1hc3Rlciwgdm9pZCAqZGF0YSkKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK