From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v10 08/13] drm/mediatek: add dsi transfer function Date: Fri, 25 Nov 2016 18:34:31 +0800 Message-ID: <1480070076-6196-9-git-send-email-yt.shen@mediatek.com> References: <1480070076-6196-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: <1480070076-6196-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 L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jIHwgMTY4ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5j IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwppbmRleCBkMjM2ZTJkLi5kMDNh MGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNp bmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgogI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KICNp bmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDx2aWRlby9taXBpX2Rp c3BsYXkuaD4KICNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KIAogI2luY2x1ZGUgIm10a19k cm1fZGRwX2NvbXAuaCIKQEAgLTgwLDggKzgxLDE2IEBACiAjZGVmaW5lIERTSV9IQlBfV0MJCTB4 NTQKICNkZWZpbmUgRFNJX0hGUF9XQwkJMHg1OAogCisjZGVmaW5lIERTSV9DTURRX1NJWkUJCTB4 NjAKKyNkZWZpbmUgQ01EUV9TSVpFCQkJMHgzZgorCiAjZGVmaW5lIERTSV9IU1RYX0NLTF9XQwkJ MHg2NAogCisjZGVmaW5lIERTSV9SWF9EQVRBMAkJMHg3NAorI2RlZmluZSBEU0lfUlhfREFUQTEJ CTB4NzgKKyNkZWZpbmUgRFNJX1JYX0RBVEEyCQkweDdjCisjZGVmaW5lIERTSV9SWF9EQVRBMwkJ MHg4MAorCiAjZGVmaW5lIERTSV9SQUNLCQkweDg0CiAjZGVmaW5lIFJBQ0sJCQkJQklUKDApCiAK QEAgLTExNyw4ICsxMjYsMjMgQEAKICNkZWZpbmUgQ0xLX0hTX1BPU1QJCQkoMHhmZiA8PCA4KQog I2RlZmluZSBDTEtfSFNfRVhJVAkJCSgweGZmIDw8IDE2KQogCisjZGVmaW5lIERTSV9DTURRMAkJ MHgxODAKKyNkZWZpbmUgQ09ORklHCQkJCSgweGZmIDw8IDApCisjZGVmaW5lIFNIT1JUX1BBQ0tF VAkJCTAKKyNkZWZpbmUgTE9OR19QQUNLRVQJCQkyCisjZGVmaW5lIEJUQQkJCQlCSVQoMikKKyNk ZWZpbmUgREFUQV9JRAkJCQkoMHhmZiA8PCA4KQorI2RlZmluZSBEQVRBXzAJCQkJKDB4ZmYgPDwg MTYpCisjZGVmaW5lIERBVEFfMQkJCQkoMHhmZiA8PCAyNCkKKwogI2RlZmluZSBOU19UT19DWUNM RShuLCBjKSAgICAoKG4pIC8gKGMpICsgKCgobikgJSAoYykpID8gMSA6IDApKQogCisjZGVmaW5l IE1US19EU0lfSE9TVF9JU19SRUFEKHR5cGUpIFwKKwkoKHR5cGUgPT0gTUlQSV9EU0lfR0VORVJJ Q19SRUFEX1JFUVVFU1RfMF9QQVJBTSkgfHwgXAorCSh0eXBlID09IE1JUElfRFNJX0dFTkVSSUNf UkVBRF9SRVFVRVNUXzFfUEFSQU0pIHx8IFwKKwkodHlwZSA9PSBNSVBJX0RTSV9HRU5FUklDX1JF QURfUkVRVUVTVF8yX1BBUkFNKSB8fCBcCisJKHR5cGUgPT0gTUlQSV9EU0lfRENTX1JFQUQpKQor CiBzdHJ1Y3QgcGh5OwogCiBzdHJ1Y3QgbXRrX2RzaSB7CkBAIC00NjUsMTIgKzQ4OSwxMiBAQCBz dGF0aWMgdm9pZCBtdGtfZHNpX2lycV9kYXRhX3NldChzdHJ1Y3QgbXRrX2RzaSAqZHNpLCB1MzIg aXJxX2JpdCkKIAlkc2ktPmlycV9kYXRhIHw9IGlycV9iaXQ7CiB9CiAKLXN0YXRpYyBfX21heWJl X3VudXNlZCB2b2lkIG10a19kc2lfaXJxX2RhdGFfY2xlYXIoc3RydWN0IG10a19kc2kgKmRzaSwg dTMyIGlycV9iaXQpCitzdGF0aWMgdm9pZCBtdGtfZHNpX2lycV9kYXRhX2NsZWFyKHN0cnVjdCBt dGtfZHNpICpkc2ksIHUzMiBpcnFfYml0KQogewogCWRzaS0+aXJxX2RhdGEgJj0gfmlycV9iaXQ7 CiB9CiAKLXN0YXRpYyBfX21heWJlX3VudXNlZCBzMzIgbXRrX2RzaV93YWl0X2Zvcl9pcnFfZG9u ZShzdHJ1Y3QgbXRrX2RzaSAqZHNpLCB1MzIgaXJxX2ZsYWcsCitzdGF0aWMgczMyIG10a19kc2lf d2FpdF9mb3JfaXJxX2RvbmUoc3RydWN0IG10a19kc2kgKmRzaSwgdTMyIGlycV9mbGFnLAogCQkJ CSAgICAgdW5zaWduZWQgaW50IHRpbWVvdXQpCiB7CiAJczMyIHJldCA9IDA7CkBAIC04MDcsOSAr ODMxLDE0OSBAQCBzdGF0aWMgaW50IG10a19kc2lfaG9zdF9kZXRhY2goc3RydWN0IG1pcGlfZHNp X2hvc3QgKmhvc3QsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIG10a19kc2lfd2FpdF9m b3JfaWRsZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQoreworCXUzMiB0aW1lb3V0X21zID0gNTAwMDAw OyAvKiB0b3RhbCAxcyB+IDJzIHRpbWVvdXQgKi8KKworCXdoaWxlICh0aW1lb3V0X21zLS0pIHsK KwkJaWYgKCEocmVhZGwoZHNpLT5yZWdzICsgRFNJX0lOVFNUQSkgJiBEU0lfQlVTWSkpCisJCQli cmVhazsKKworCQl1c2xlZXBfcmFuZ2UoMiwgNCk7CisJfQorCisJaWYgKHRpbWVvdXRfbXMgPT0g MCkgeworCQlEUk1fV0FSTigicG9sbGluZyBkc2kgd2FpdCBub3QgYnVzeSB0aW1lb3V0IVxuIik7 CisKKwkJbXRrX2RzaV9lbmFibGUoZHNpKTsKKwkJbXRrX2RzaV9yZXNldF9lbmdpbmUoZHNpKTsK Kwl9Cit9CisKK3N0YXRpYyB1MzIgbXRrX2RzaV9yZWN2X2NudCh1OCB0eXBlLCB1OCAqcmVhZF9k YXRhKQoreworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJQ19TSE9S VF9SRUFEX1JFU1BPTlNFXzFCWVRFOgorCWNhc2UgTUlQSV9EU0lfUlhfRENTX1NIT1JUX1JFQURf UkVTUE9OU0VfMUJZVEU6CisJCXJldHVybiAxOworCWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJQ19T SE9SVF9SRUFEX1JFU1BPTlNFXzJCWVRFOgorCWNhc2UgTUlQSV9EU0lfUlhfRENTX1NIT1JUX1JF QURfUkVTUE9OU0VfMkJZVEU6CisJCXJldHVybiAyOworCWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJ Q19MT05HX1JFQURfUkVTUE9OU0U6CisJY2FzZSBNSVBJX0RTSV9SWF9EQ1NfTE9OR19SRUFEX1JF U1BPTlNFOgorCQlyZXR1cm4gcmVhZF9kYXRhWzFdICsgcmVhZF9kYXRhWzJdICogMTY7CisJY2Fz ZSBNSVBJX0RTSV9SWF9BQ0tOT1dMRURHRV9BTkRfRVJST1JfUkVQT1JUOgorCQlEUk1fSU5GTygi dHlwZSBpcyAweDAyLCB0cnkgYWdhaW5cbiIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlEUk1f SU5GTygidHlwZSgweCV4KSBjYW5ub3QgYmUgbm9uLXJlY29nbml0ZVxuIiwgdHlwZSk7CisJCWJy ZWFrOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBtdGtfZHNpX2NtZHEoc3Ry dWN0IG10a19kc2kgKmRzaSwgY29uc3Qgc3RydWN0IG1pcGlfZHNpX21zZyAqbXNnKQoreworCWNv bnN0IGNoYXIgKnR4X2J1ZiA9IG1zZy0+dHhfYnVmOworCXU4IGNvbmZpZywgY21kcV9zaXplLCBj bWRxX29mZiwgdHlwZSA9IG1zZy0+dHlwZTsKKwl1MzIgcmVnX3ZhbCwgY21kcV9tYXNrLCBpOwor CisJaWYgKE1US19EU0lfSE9TVF9JU19SRUFEKHR5cGUpKQorCQljb25maWcgPSBCVEE7CisJZWxz ZQorCQljb25maWcgPSAobXNnLT50eF9sZW4gPiAyKSA/IExPTkdfUEFDS0VUIDogU0hPUlRfUEFD S0VUOworCisJaWYgKG1zZy0+dHhfbGVuID4gMikgeworCQljbWRxX3NpemUgPSAxICsgKG1zZy0+ dHhfbGVuICsgMykgLyA0OworCQljbWRxX29mZiA9IDQ7CisJCWNtZHFfbWFzayA9IENPTkZJRyB8 IERBVEFfSUQgfCBEQVRBXzAgfCBEQVRBXzE7CisJCXJlZ192YWwgPSAobXNnLT50eF9sZW4gPDwg MTYpIHwgKHR5cGUgPDwgOCkgfCBjb25maWc7CisJfSBlbHNlIHsKKwkJY21kcV9zaXplID0gMTsK KwkJY21kcV9vZmYgPSAyOworCQljbWRxX21hc2sgPSBDT05GSUcgfCBEQVRBX0lEOworCQlyZWdf dmFsID0gKHR5cGUgPDwgOCkgfCBjb25maWc7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG1zZy0+ dHhfbGVuOyBpKyspCisJCXdyaXRlYih0eF9idWZbaV0sIGRzaS0+cmVncyArIERTSV9DTURRMCAr IGNtZHFfb2ZmICsgaSk7CisKKwltdGtfZHNpX21hc2soZHNpLCBEU0lfQ01EUTAsIGNtZHFfbWFz aywgcmVnX3ZhbCk7CisJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX0NNRFFfU0laRSwgQ01EUV9TSVpF LCBjbWRxX3NpemUpOworfQorCitzdGF0aWMgc3NpemVfdCBtdGtfZHNpX2hvc3Rfc2VuZF9jbWQo c3RydWN0IG10a19kc2kgKmRzaSwKKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cg Km1zZywgdTggZmxhZykKK3sKKwltdGtfZHNpX3dhaXRfZm9yX2lkbGUoZHNpKTsKKwltdGtfZHNp X2lycV9kYXRhX2NsZWFyKGRzaSwgZmxhZyk7CisJbXRrX2RzaV9jbWRxKGRzaSwgbXNnKTsKKwlt dGtfZHNpX3N0YXJ0KGRzaSk7CisKKwlpZiAoIW10a19kc2lfd2FpdF9mb3JfaXJxX2RvbmUoZHNp LCBmbGFnLCAyMDAwKSkKKwkJcmV0dXJuIC1FVElNRTsKKwllbHNlCisJCXJldHVybiAwOworfQor CitzdGF0aWMgc3NpemVfdCBtdGtfZHNpX2hvc3RfdHJhbnNmZXIoc3RydWN0IG1pcGlfZHNpX2hv c3QgKmhvc3QsCisJCQkJICAgICBjb25zdCBzdHJ1Y3QgbWlwaV9kc2lfbXNnICptc2cpCit7CisJ c3RydWN0IG10a19kc2kgKmRzaSA9IGhvc3RfdG9fZHNpKGhvc3QpOworCXUzMiByZWN2X2NudCwg aTsKKwl1OCByZWFkX2RhdGFbMTZdOworCXZvaWQgKnNyY19hZGRyOworCXU4IGlycV9mbGFnID0g Q01EX0RPTkVfSU5UX0ZMQUc7CisKKwlpZiAocmVhZGwoZHNpLT5yZWdzICsgRFNJX01PREVfQ1RS TCkgJiBNT0RFKSB7CisJCURSTV9FUlJPUigiZHNpIGVuZ2luZSBpcyBub3QgY29tbWFuZCBtb2Rl XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKE1US19EU0lfSE9TVF9JU19SRUFE KG1zZy0+dHlwZSkpCisJCWlycV9mbGFnIHw9IExQUlhfUkRfUkRZX0lOVF9GTEFHOworCisJaWYg KG10a19kc2lfaG9zdF9zZW5kX2NtZChkc2ksIG1zZywgaXJxX2ZsYWcpIDwgMCkKKwkJcmV0dXJu IC1FVElNRTsKKworCWlmICghTVRLX0RTSV9IT1NUX0lTX1JFQUQobXNnLT50eXBlKSkKKwkJcmV0 dXJuIDA7CisKKwlpZiAoIW1zZy0+cnhfYnVmKSB7CisJCURSTV9FUlJPUigiZHNpIHJlY2VpdmUg YnVmZmVyIHNpemUgbWF5IGJlIE5VTExcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlm b3IgKGkgPSAwOyBpIDwgMTY7IGkrKykKKwkJKihyZWFkX2RhdGEgKyBpKSA9IHJlYWRiKGRzaS0+ cmVncyArIERTSV9SWF9EQVRBMCArIGkpOworCisJcmVjdl9jbnQgPSBtdGtfZHNpX3JlY3ZfY250 KHJlYWRfZGF0YVswXSwgcmVhZF9kYXRhKTsKKworCWlmIChyZWN2X2NudCA+IDIpCisJCXNyY19h ZGRyID0gJnJlYWRfZGF0YVs0XTsKKwllbHNlCisJCXNyY19hZGRyID0gJnJlYWRfZGF0YVsxXTsK KworCWlmIChyZWN2X2NudCA+IDEwKQorCQlyZWN2X2NudCA9IDEwOworCisJaWYgKHJlY3ZfY250 ID4gbXNnLT5yeF9sZW4pCisJCXJlY3ZfY250ID0gbXNnLT5yeF9sZW47CisKKwlpZiAocmVjdl9j bnQpCisJCW1lbWNweShtc2ctPnJ4X2J1Ziwgc3JjX2FkZHIsIHJlY3ZfY250KTsKKworCURSTV9J TkZPKCJkc2kgZ2V0ICVkIGJ5dGUgZGF0YSBmcm9tIHRoZSBwYW5lbCBhZGRyZXNzKDB4JXgpXG4i LAorCQkgcmVjdl9jbnQsICooKHU4ICopKG1zZy0+dHhfYnVmKSkpOworCisJcmV0dXJuIHJlY3Zf Y250OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1pcGlfZHNpX2hvc3Rfb3BzIG10a19kc2lf b3BzID0gewogCS5hdHRhY2ggPSBtdGtfZHNpX2hvc3RfYXR0YWNoLAogCS5kZXRhY2ggPSBtdGtf ZHNpX2hvc3RfZGV0YWNoLAorCS50cmFuc2ZlciA9IG10a19kc2lfaG9zdF90cmFuc2ZlciwKIH07 CiAKIHN0YXRpYyBpbnQgbXRrX2RzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=