From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v11 11/12] drm/mediatek: update DSI sub driver flow for sending commands to panel Date: Wed, 11 Jan 2017 14:51:12 +0800 Message-ID: <1484117473-46644-12-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 VGhpcyBwYXRjaCB1cGRhdGUgZW5hYmxlL2Rpc2FibGUgZmxvdyBvZiBEU0kgbW9kdWxlLgpPcmln aW5hbCBmbG93IHdvcmtzIG9uIHRoZXJlIGlzIGEgYnJpZGdlIGNoaXA6IERTSSAtPiBicmlkZ2Ug LT4gcGFuZWwuCkluIHRoaXMgY2FzZTogRFNJIC0+IHBhbmVsLCB0aGUgRFNJIHN1YiBkcml2ZXIg ZmxvdyBzaG91bGQgYmUgdXBkYXRlZC4KV2UgbmVlZCB0byBpbml0aWFsaXplIERTSSBmaXJzdCBz byB0aGF0IHdlIGNhbiBzZW5kIGNvbW1hbmRzIHRvIHBhbmVsLgoKU2lnbmVkLW9mZi1ieTogc2hh b21pbmcgY2hlbiA8c2hhb21pbmcuY2hlbkBtZWRpYXRlay5jb20+ClNpZ25lZC1vZmYtYnk6IFlU IFNoZW4gPHl0LnNoZW5AbWVkaWF0ZWsuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHNpLmMgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RzaS5jCmluZGV4IDg1ZjIyZDIuLjIxMzkyYzQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kc2kuYwpAQCAtMTI2LDYgKzEyNiwxMCBAQAogI2RlZmluZSBDTEtfSFNf UE9TVAkJCSgweGZmIDw8IDgpCiAjZGVmaW5lIENMS19IU19FWElUCQkJKDB4ZmYgPDwgMTYpCiAK KyNkZWZpbmUgRFNJX1ZNX0NNRF9DT04JCTB4MTMwCisjZGVmaW5lIFZNX0NNRF9FTgkJCUJJVCgw KQorI2RlZmluZSBUU19WRlBfRU4JCQlCSVQoNSkKKwogI2RlZmluZSBEU0lfQ01EUTAJCTB4MTgw CiAjZGVmaW5lIENPTkZJRwkJCQkoMHhmZiA8PCAwKQogI2RlZmluZSBTSE9SVF9QQUNLRVQJCQkw CkBAIC0zNjUsMTYgKzM2OSwyMyBAQCBzdGF0aWMgdm9pZCBtdGtfZHNpX3NldF9tb2RlKHN0cnVj dCBtdGtfZHNpICpkc2kpCiAJdTMyIHZpZF9tb2RlID0gQ01EX01PREU7CiAKIAlpZiAoZHNpLT5t b2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9WSURFTykgewotCQl2aWRfbW9kZSA9IFNZTkNfUFVM U0VfTU9ERTsKLQotCQlpZiAoKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU9f QlVSU1QpICYmCi0JCSAgICAhKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU9f U1lOQ19QVUxTRSkpCisJCWlmIChkc2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVP X0JVUlNUKQogCQkJdmlkX21vZGUgPSBCVVJTVF9NT0RFOworCQllbHNlIGlmIChkc2ktPm1vZGVf ZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX1NZTkNfUFVMU0UpCisJCQl2aWRfbW9kZSA9IFNZ TkNfUFVMU0VfTU9ERTsKKwkJZWxzZQorCQkJdmlkX21vZGUgPSBTWU5DX0VWRU5UX01PREU7CiAJ fQogCiAJd3JpdGVsKHZpZF9tb2RlLCBkc2ktPnJlZ3MgKyBEU0lfTU9ERV9DVFJMKTsKIH0KIAor c3RhdGljIHZvaWQgbXRrX2RzaV9zZXRfdm1fY21kKHN0cnVjdCBtdGtfZHNpICpkc2kpCit7CisJ bXRrX2RzaV9tYXNrKGRzaSwgRFNJX1ZNX0NNRF9DT04sIFZNX0NNRF9FTiwgVk1fQ01EX0VOKTsK KwltdGtfZHNpX21hc2soZHNpLCBEU0lfVk1fQ01EX0NPTiwgVFNfVkZQX0VOLCBUU19WRlBfRU4p OworfQorCiBzdGF0aWMgdm9pZCBtdGtfZHNpX3BzX2NvbnRyb2xfdmFjdChzdHJ1Y3QgbXRrX2Rz aSAqZHNpKQogewogCXN0cnVjdCB2aWRlb21vZGUgKnZtID0gJmRzaS0+dm07CkBAIC01MTIsNiAr NTIzLDE2IEBAIHN0YXRpYyB2b2lkIG10a19kc2lfc3RhcnQoc3RydWN0IG10a19kc2kgKmRzaSkK IAl3cml0ZWwoMSwgZHNpLT5yZWdzICsgRFNJX1NUQVJUKTsKIH0KIAorc3RhdGljIHZvaWQgbXRr X2RzaV9zdG9wKHN0cnVjdCBtdGtfZHNpICpkc2kpCit7CisJd3JpdGVsKDAsIGRzaS0+cmVncyAr IERTSV9TVEFSVCk7Cit9CisKK3N0YXRpYyB2b2lkIG10a19kc2lfc2V0X2NtZF9tb2RlKHN0cnVj dCBtdGtfZHNpICpkc2kpCit7CisJd3JpdGVsKENNRF9NT0RFLCBkc2ktPnJlZ3MgKyBEU0lfTU9E RV9DVFJMKTsKK30KKwogc3RhdGljIHZvaWQgbXRrX2RzaV9zZXRfaW50ZXJydXB0X2VuYWJsZShz dHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCXUzMiBpbnRlbiA9IExQUlhfUkRfUkRZX0lOVF9GTEFH IHwgQ01EX0RPTkVfSU5UX0ZMQUcgfCBWTV9ET05FX0lOVF9GTEFHOwpAQCAtNTcwLDYgKzU5MSwx OSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbXRrX2RzaV9pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lk KQogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIAorc3RhdGljIHMzMiBtdGtfZHNpX3N3aXRjaF90 b19jbWRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpLCB1OCBpcnFfZmxhZywgdTMyIHQpCit7CisJ bXRrX2RzaV9pcnFfZGF0YV9jbGVhcihkc2ksIGlycV9mbGFnKTsKKwltdGtfZHNpX3NldF9jbWRf bW9kZShkc2kpOworCisJaWYgKCFtdGtfZHNpX3dhaXRfZm9yX2lycV9kb25lKGRzaSwgaXJxX2Zs YWcsIHQpKSB7CisJCURSTV9FUlJPUigiZmFpbGVkIHRvIHN3aXRjaCBjbWQgbW9kZVxuIik7CisJ CXJldHVybiAtRVRJTUU7CisJfSBlbHNlIHsKKwkJcmV0dXJuIDA7CisJfQorfQorCiBzdGF0aWMg dm9pZCBtdGtfZHNpX3Bvd2Vyb2ZmKHN0cnVjdCBtdGtfZHNpICpkc2kpCiB7CiAJaWYgKFdBUk5f T04oZHNpLT5yZWZjb3VudCA9PSAwKSkKQEAgLTU3OCw2ICs2MTIsMTcgQEAgc3RhdGljIHZvaWQg bXRrX2RzaV9wb3dlcm9mZihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogCWlmICgtLWRzaS0+cmVmY291 bnQgIT0gMCkKIAkJcmV0dXJuOwogCisJbXRrX2RzaV9zdG9wKGRzaSk7CisJaWYgKCFtdGtfZHNp X3N3aXRjaF90b19jbWRfbW9kZShkc2ksIFZNX0RPTkVfSU5UX0ZMQUcsIDUwMCkpIHsKKwkJaWYg KGRzaS0+cGFuZWwpIHsKKwkJCWlmIChkcm1fcGFuZWxfdW5wcmVwYXJlKGRzaS0+cGFuZWwpKSB7 CisJCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gdW5wcmVwYXJlIHRoZSBwYW5lbFxuIik7CisJCQkJ cmV0dXJuOworCQkJfQorCQl9CisJfQorCisJbXRrX2RzaV9yZXNldF9lbmdpbmUoZHNpKTsKIAlt dGtfZHNpX2xhbmUwX3VscF9tb2RlX2VudGVyKGRzaSk7CiAJbXRrX2RzaV9jbGtfdWxwX21vZGVf ZW50ZXIoZHNpKTsKIApAQCAtNTk2LDEzICs2NDEsNiBAQCBzdGF0aWMgdm9pZCBtdGtfb3V0cHV0 X2RzaV9lbmFibGUoc3RydWN0IG10a19kc2kgKmRzaSkKIAlpZiAoZHNpLT5lbmFibGVkKQogCQly ZXR1cm47CiAKLQlpZiAoZHNpLT5wYW5lbCkgewotCQlpZiAoZHJtX3BhbmVsX3ByZXBhcmUoZHNp LT5wYW5lbCkpIHsKLQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHNldHVwIHRoZSBwYW5lbFxuIik7 Ci0JCQlyZXR1cm47Ci0JCX0KLQl9Ci0KIAlyZXQgPSBtdGtfZHNpX3Bvd2Vyb24oZHNpKTsKIAlp ZiAocmV0IDwgMCkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBwb3dlciBvbiBkc2lcbiIpOwpA QCAtNjEwLDIyICs2NDgsNDMgQEAgc3RhdGljIHZvaWQgbXRrX291dHB1dF9kc2lfZW5hYmxlKHN0 cnVjdCBtdGtfZHNpICpkc2kpCiAJfQogCiAJbXRrX2RzaV9yeHR4X2NvbnRyb2woZHNpKTsKKwlt dGtfZHNpX3BzX2NvbnRyb2xfdmFjdChkc2kpOworCW10a19kc2lfc2V0X3ZtX2NtZChkc2kpOwor CW10a19kc2lfY29uZmlnX3Zkb190aW1pbmcoZHNpKTsKKwltdGtfZHNpX3NldF9pbnRlcnJ1cHRf ZW5hYmxlKGRzaSk7CiAKIAltdGtfZHNpX2Nsa191bHBfbW9kZV9sZWF2ZShkc2kpOwogCW10a19k c2lfbGFuZTBfdWxwX21vZGVfbGVhdmUoZHNpKTsKIAltdGtfZHNpX2Nsa19oc19tb2RlKGRzaSwg MCk7Ci0JbXRrX2RzaV9zZXRfbW9kZShkc2kpOwogCi0JbXRrX2RzaV9wc19jb250cm9sX3ZhY3Qo ZHNpKTsKLQltdGtfZHNpX2NvbmZpZ192ZG9fdGltaW5nKGRzaSk7Ci0JbXRrX2RzaV9zZXRfaW50 ZXJydXB0X2VuYWJsZShkc2kpOworCWlmIChkc2ktPnBhbmVsKSB7CisJCWlmIChkcm1fcGFuZWxf cHJlcGFyZShkc2ktPnBhbmVsKSkgeworCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcHJlcGFyZSB0 aGUgcGFuZWxcbiIpOworCQkJZ290byBlcnJfZHNpX3Bvd2VyX29mZjsKKwkJfQorCX0KIAogCW10 a19kc2lfc2V0X21vZGUoZHNpKTsKIAltdGtfZHNpX2Nsa19oc19tb2RlKGRzaSwgMSk7CiAKIAlt dGtfZHNpX3N0YXJ0KGRzaSk7CiAKKwlpZiAoZHNpLT5wYW5lbCkgeworCQlpZiAoZHJtX3BhbmVs X2VuYWJsZShkc2ktPnBhbmVsKSkgeworCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZW5hYmxlIHRo ZSBwYW5lbFxuIik7CisJCQlnb3RvIGVycl9wYW5lbF9kaXNhYmxlOworCQl9CisJfQorCiAJZHNp LT5lbmFibGVkID0gdHJ1ZTsKKworCXJldHVybjsKK2Vycl9wYW5lbF9kaXNhYmxlOgorCW10a19k c2lfc3RvcChkc2kpOworCWlmIChkc2ktPnBhbmVsKQorCQlkcm1fcGFuZWxfdW5wcmVwYXJlKGRz aS0+cGFuZWwpOworZXJyX2RzaV9wb3dlcl9vZmY6CisJbXRrX2RzaV9wb3dlcm9mZihkc2kpOwog fQogCiBzdGF0aWMgdm9pZCBtdGtfb3V0cHV0X2RzaV9kaXNhYmxlKHN0cnVjdCBtdGtfZHNpICpk c2kpCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==