From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v11 09/12] drm/mediatek: add dsi transfer function Date: Wed, 11 Jan 2017 14:51:10 +0800 Message-ID: <1484117473-46644-10-git-send-email-yt.shen@mediatek.com> References: <1484117473-46644-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: <1484117473-46644-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 , CK Hu Cc: Mark Rutland , devicetree@vger.kernel.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Rob Herring , linux-mediatek@lists.infradead.org, Matthias Brugger , yingjoe.chen@mediatek.com, shaoming chen , linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org RnJvbTogc2hhb21pbmcgY2hlbiA8c2hhb21pbmcuY2hlbkBtZWRpYXRlay5jb20+CgphZGQgZHNp IHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRyYW5zZmVyIGZ1bmN0aW9uCgpTaWduZWQtb2ZmLWJ5 OiBzaGFvbWluZyBjaGVuIDxzaGFvbWluZy5jaGVuQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jIHwgMTY4ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5j IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwppbmRleCA0NzQ4NjFhLi5iM2M3 ZmQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNp bmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgogI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KICNp bmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDx2aWRlby9taXBpX2Rp c3BsYXkuaD4KICNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KIAogI2luY2x1ZGUgIm10a19k cm1fZGRwX2NvbXAuaCIKQEAgLTgwLDggKzgxLDE2IEBACiAjZGVmaW5lIERTSV9IQlBfV0MJCTB4 NTQKICNkZWZpbmUgRFNJX0hGUF9XQwkJMHg1OAogCisjZGVmaW5lIERTSV9DTURRX1NJWkUJCTB4 NjAKKyNkZWZpbmUgQ01EUV9TSVpFCQkJMHgzZgorCiAjZGVmaW5lIERTSV9IU1RYX0NLTF9XQwkJ MHg2NAogCisjZGVmaW5lIERTSV9SWF9EQVRBMAkJMHg3NAorI2RlZmluZSBEU0lfUlhfREFUQTEJ CTB4NzgKKyNkZWZpbmUgRFNJX1JYX0RBVEEyCQkweDdjCisjZGVmaW5lIERTSV9SWF9EQVRBMwkJ MHg4MAorCiAjZGVmaW5lIERTSV9SQUNLCQkweDg0CiAjZGVmaW5lIFJBQ0sJCQkJQklUKDApCiAK QEAgLTExNyw2ICsxMjYsMTUgQEAKICNkZWZpbmUgQ0xLX0hTX1BPU1QJCQkoMHhmZiA8PCA4KQog I2RlZmluZSBDTEtfSFNfRVhJVAkJCSgweGZmIDw8IDE2KQogCisjZGVmaW5lIERTSV9DTURRMAkJ MHgxODAKKyNkZWZpbmUgQ09ORklHCQkJCSgweGZmIDw8IDApCisjZGVmaW5lIFNIT1JUX1BBQ0tF VAkJCTAKKyNkZWZpbmUgTE9OR19QQUNLRVQJCQkyCisjZGVmaW5lIEJUQQkJCQlCSVQoMikKKyNk ZWZpbmUgREFUQV9JRAkJCQkoMHhmZiA8PCA4KQorI2RlZmluZSBEQVRBXzAJCQkJKDB4ZmYgPDwg MTYpCisjZGVmaW5lIERBVEFfMQkJCQkoMHhmZiA8PCAyNCkKKwogI2RlZmluZSBUX0xQWAkJNQog I2RlZmluZSBUX0hTX1BSRVAJNgogI2RlZmluZSBUX0hTX1RSQUlMCTgKQEAgLTEyNSw2ICsxNDMs MTIgQEAKIAogI2RlZmluZSBOU19UT19DWUNMRShuLCBjKSAgICAoKG4pIC8gKGMpICsgKCgobikg JSAoYykpID8gMSA6IDApKQogCisjZGVmaW5lIE1US19EU0lfSE9TVF9JU19SRUFEKHR5cGUpIFwK KwkoKHR5cGUgPT0gTUlQSV9EU0lfR0VORVJJQ19SRUFEX1JFUVVFU1RfMF9QQVJBTSkgfHwgXAor CSh0eXBlID09IE1JUElfRFNJX0dFTkVSSUNfUkVBRF9SRVFVRVNUXzFfUEFSQU0pIHx8IFwKKwko dHlwZSA9PSBNSVBJX0RTSV9HRU5FUklDX1JFQURfUkVRVUVTVF8yX1BBUkFNKSB8fCBcCisJKHR5 cGUgPT0gTUlQSV9EU0lfRENTX1JFQUQpKQorCiBzdHJ1Y3QgcGh5OwogCiBzdHJ1Y3QgbXRrX2Rz aSB7CkBAIC00OTcsMTIgKzUyMSwxMiBAQCBzdGF0aWMgdm9pZCBtdGtfZHNpX2lycV9kYXRhX3Nl dChzdHJ1Y3QgbXRrX2RzaSAqZHNpLCB1MzIgaXJxX2JpdCkKIAlkc2ktPmlycV9kYXRhIHw9IGly cV9iaXQ7CiB9CiAKLXN0YXRpYyBfX21heWJlX3VudXNlZCB2b2lkIG10a19kc2lfaXJxX2RhdGFf Y2xlYXIoc3RydWN0IG10a19kc2kgKmRzaSwgdTMyIGlycV9iaXQpCitzdGF0aWMgdm9pZCBtdGtf ZHNpX2lycV9kYXRhX2NsZWFyKHN0cnVjdCBtdGtfZHNpICpkc2ksIHUzMiBpcnFfYml0KQogewog CWRzaS0+aXJxX2RhdGEgJj0gfmlycV9iaXQ7CiB9CiAKLXN0YXRpYyBfX21heWJlX3VudXNlZCBz MzIgbXRrX2RzaV93YWl0X2Zvcl9pcnFfZG9uZShzdHJ1Y3QgbXRrX2RzaSAqZHNpLCB1MzIgaXJx X2ZsYWcsCitzdGF0aWMgczMyIG10a19kc2lfd2FpdF9mb3JfaXJxX2RvbmUoc3RydWN0IG10a19k c2kgKmRzaSwgdTMyIGlycV9mbGFnLAogCQkJCSAgICAgdW5zaWduZWQgaW50IHRpbWVvdXQpCiB7 CiAJczMyIHJldCA9IDA7CkBAIC04MzIsOSArODU2LDE0OSBAQCBzdGF0aWMgaW50IG10a19kc2lf aG9zdF9kZXRhY2goc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJcmV0dXJuIDA7CiB9CiAK K3N0YXRpYyB2b2lkIG10a19kc2lfd2FpdF9mb3JfaWRsZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQor eworCXUzMiB0aW1lb3V0X21zID0gNTAwMDAwOyAvKiB0b3RhbCAxcyB+IDJzIHRpbWVvdXQgKi8K KworCXdoaWxlICh0aW1lb3V0X21zLS0pIHsKKwkJaWYgKCEocmVhZGwoZHNpLT5yZWdzICsgRFNJ X0lOVFNUQSkgJiBEU0lfQlVTWSkpCisJCQlicmVhazsKKworCQl1c2xlZXBfcmFuZ2UoMiwgNCk7 CisJfQorCisJaWYgKHRpbWVvdXRfbXMgPT0gMCkgeworCQlEUk1fV0FSTigicG9sbGluZyBkc2kg d2FpdCBub3QgYnVzeSB0aW1lb3V0IVxuIik7CisKKwkJbXRrX2RzaV9lbmFibGUoZHNpKTsKKwkJ bXRrX2RzaV9yZXNldF9lbmdpbmUoZHNpKTsKKwl9Cit9CisKK3N0YXRpYyB1MzIgbXRrX2RzaV9y ZWN2X2NudCh1OCB0eXBlLCB1OCAqcmVhZF9kYXRhKQoreworCXN3aXRjaCAodHlwZSkgeworCWNh c2UgTUlQSV9EU0lfUlhfR0VORVJJQ19TSE9SVF9SRUFEX1JFU1BPTlNFXzFCWVRFOgorCWNhc2Ug TUlQSV9EU0lfUlhfRENTX1NIT1JUX1JFQURfUkVTUE9OU0VfMUJZVEU6CisJCXJldHVybiAxOwor CWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJQ19TSE9SVF9SRUFEX1JFU1BPTlNFXzJCWVRFOgorCWNh c2UgTUlQSV9EU0lfUlhfRENTX1NIT1JUX1JFQURfUkVTUE9OU0VfMkJZVEU6CisJCXJldHVybiAy OworCWNhc2UgTUlQSV9EU0lfUlhfR0VORVJJQ19MT05HX1JFQURfUkVTUE9OU0U6CisJY2FzZSBN SVBJX0RTSV9SWF9EQ1NfTE9OR19SRUFEX1JFU1BPTlNFOgorCQlyZXR1cm4gcmVhZF9kYXRhWzFd ICsgcmVhZF9kYXRhWzJdICogMTY7CisJY2FzZSBNSVBJX0RTSV9SWF9BQ0tOT1dMRURHRV9BTkRf RVJST1JfUkVQT1JUOgorCQlEUk1fSU5GTygidHlwZSBpcyAweDAyLCB0cnkgYWdhaW5cbiIpOwor CQlicmVhazsKKwlkZWZhdWx0OgorCQlEUk1fSU5GTygidHlwZSgweCV4KSBjYW5ub3QgYmUgbm9u LXJlY29nbml0ZVxuIiwgdHlwZSk7CisJCWJyZWFrOworCX0KKworCXJldHVybiAwOworfQorCitz dGF0aWMgdm9pZCBtdGtfZHNpX2NtZHEoc3RydWN0IG10a19kc2kgKmRzaSwgY29uc3Qgc3RydWN0 IG1pcGlfZHNpX21zZyAqbXNnKQoreworCWNvbnN0IGNoYXIgKnR4X2J1ZiA9IG1zZy0+dHhfYnVm OworCXU4IGNvbmZpZywgY21kcV9zaXplLCBjbWRxX29mZiwgdHlwZSA9IG1zZy0+dHlwZTsKKwl1 MzIgcmVnX3ZhbCwgY21kcV9tYXNrLCBpOworCisJaWYgKE1US19EU0lfSE9TVF9JU19SRUFEKHR5 cGUpKQorCQljb25maWcgPSBCVEE7CisJZWxzZQorCQljb25maWcgPSAobXNnLT50eF9sZW4gPiAy KSA/IExPTkdfUEFDS0VUIDogU0hPUlRfUEFDS0VUOworCisJaWYgKG1zZy0+dHhfbGVuID4gMikg eworCQljbWRxX3NpemUgPSAxICsgKG1zZy0+dHhfbGVuICsgMykgLyA0OworCQljbWRxX29mZiA9 IDQ7CisJCWNtZHFfbWFzayA9IENPTkZJRyB8IERBVEFfSUQgfCBEQVRBXzAgfCBEQVRBXzE7CisJ CXJlZ192YWwgPSAobXNnLT50eF9sZW4gPDwgMTYpIHwgKHR5cGUgPDwgOCkgfCBjb25maWc7CisJ fSBlbHNlIHsKKwkJY21kcV9zaXplID0gMTsKKwkJY21kcV9vZmYgPSAyOworCQljbWRxX21hc2sg PSBDT05GSUcgfCBEQVRBX0lEOworCQlyZWdfdmFsID0gKHR5cGUgPDwgOCkgfCBjb25maWc7CisJ fQorCisJZm9yIChpID0gMDsgaSA8IG1zZy0+dHhfbGVuOyBpKyspCisJCXdyaXRlYih0eF9idWZb aV0sIGRzaS0+cmVncyArIERTSV9DTURRMCArIGNtZHFfb2ZmICsgaSk7CisKKwltdGtfZHNpX21h c2soZHNpLCBEU0lfQ01EUTAsIGNtZHFfbWFzaywgcmVnX3ZhbCk7CisJbXRrX2RzaV9tYXNrKGRz aSwgRFNJX0NNRFFfU0laRSwgQ01EUV9TSVpFLCBjbWRxX3NpemUpOworfQorCitzdGF0aWMgc3Np emVfdCBtdGtfZHNpX2hvc3Rfc2VuZF9jbWQoc3RydWN0IG10a19kc2kgKmRzaSwKKwkJCQkgICAg IGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cgKm1zZywgdTggZmxhZykKK3sKKwltdGtfZHNpX3dh aXRfZm9yX2lkbGUoZHNpKTsKKwltdGtfZHNpX2lycV9kYXRhX2NsZWFyKGRzaSwgZmxhZyk7CisJ bXRrX2RzaV9jbWRxKGRzaSwgbXNnKTsKKwltdGtfZHNpX3N0YXJ0KGRzaSk7CisKKwlpZiAoIW10 a19kc2lfd2FpdF9mb3JfaXJxX2RvbmUoZHNpLCBmbGFnLCAyMDAwKSkKKwkJcmV0dXJuIC1FVElN RTsKKwllbHNlCisJCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdCBtdGtfZHNpX2hvc3Rf dHJhbnNmZXIoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCisJCQkJICAgICBjb25zdCBzdHJ1 Y3QgbWlwaV9kc2lfbXNnICptc2cpCit7CisJc3RydWN0IG10a19kc2kgKmRzaSA9IGhvc3RfdG9f ZHNpKGhvc3QpOworCXUzMiByZWN2X2NudCwgaTsKKwl1OCByZWFkX2RhdGFbMTZdOworCXZvaWQg KnNyY19hZGRyOworCXU4IGlycV9mbGFnID0gQ01EX0RPTkVfSU5UX0ZMQUc7CisKKwlpZiAocmVh ZGwoZHNpLT5yZWdzICsgRFNJX01PREVfQ1RSTCkgJiBNT0RFKSB7CisJCURSTV9FUlJPUigiZHNp IGVuZ2luZSBpcyBub3QgY29tbWFuZCBtb2RlXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQor CisJaWYgKE1US19EU0lfSE9TVF9JU19SRUFEKG1zZy0+dHlwZSkpCisJCWlycV9mbGFnIHw9IExQ UlhfUkRfUkRZX0lOVF9GTEFHOworCisJaWYgKG10a19kc2lfaG9zdF9zZW5kX2NtZChkc2ksIG1z ZywgaXJxX2ZsYWcpIDwgMCkKKwkJcmV0dXJuIC1FVElNRTsKKworCWlmICghTVRLX0RTSV9IT1NU X0lTX1JFQUQobXNnLT50eXBlKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIW1zZy0+cnhfYnVmKSB7 CisJCURSTV9FUlJPUigiZHNpIHJlY2VpdmUgYnVmZmVyIHNpemUgbWF5IGJlIE5VTExcbiIpOwor CQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykKKwkJKihy ZWFkX2RhdGEgKyBpKSA9IHJlYWRiKGRzaS0+cmVncyArIERTSV9SWF9EQVRBMCArIGkpOworCisJ cmVjdl9jbnQgPSBtdGtfZHNpX3JlY3ZfY250KHJlYWRfZGF0YVswXSwgcmVhZF9kYXRhKTsKKwor CWlmIChyZWN2X2NudCA+IDIpCisJCXNyY19hZGRyID0gJnJlYWRfZGF0YVs0XTsKKwllbHNlCisJ CXNyY19hZGRyID0gJnJlYWRfZGF0YVsxXTsKKworCWlmIChyZWN2X2NudCA+IDEwKQorCQlyZWN2 X2NudCA9IDEwOworCisJaWYgKHJlY3ZfY250ID4gbXNnLT5yeF9sZW4pCisJCXJlY3ZfY250ID0g bXNnLT5yeF9sZW47CisKKwlpZiAocmVjdl9jbnQpCisJCW1lbWNweShtc2ctPnJ4X2J1Ziwgc3Jj X2FkZHIsIHJlY3ZfY250KTsKKworCURSTV9JTkZPKCJkc2kgZ2V0ICVkIGJ5dGUgZGF0YSBmcm9t IHRoZSBwYW5lbCBhZGRyZXNzKDB4JXgpXG4iLAorCQkgcmVjdl9jbnQsICooKHU4ICopKG1zZy0+ dHhfYnVmKSkpOworCisJcmV0dXJuIHJlY3ZfY250OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0 IG1pcGlfZHNpX2hvc3Rfb3BzIG10a19kc2lfb3BzID0gewogCS5hdHRhY2ggPSBtdGtfZHNpX2hv c3RfYXR0YWNoLAogCS5kZXRhY2ggPSBtdGtfZHNpX2hvc3RfZGV0YWNoLAorCS50cmFuc2ZlciA9 IG10a19kc2lfaG9zdF90cmFuc2ZlciwKIH07CiAKIHN0YXRpYyBpbnQgbXRrX2RzaV9iaW5kKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQotLSAK MS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=