From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v10 12/13] drm/mediatek: update DSI sub driver flow for sending commands to panel Date: Fri, 25 Nov 2016 18:34:35 +0800 Message-ID: <1480070076-6196-13-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 VGhpcyBwYXRjaCB1cGRhdGUgZW5hYmxlL2Rpc2FibGUgZmxvdyBvZiBEU0kgbW9kdWxlLgpPcmln aW5hbCBmbG93IHdvcmtzIG9uIHRoZXJlIGlzIGEgYnJpZGdlIGNoaXA6IERTSSAtPiBicmlkZ2Ug LT4gcGFuZWwuCkluIHRoaXMgY2FzZTogRFNJIC0+IHBhbmVsLCB0aGUgRFNJIHN1YiBkcml2ZXIg ZmxvdyBzaG91bGQgYmUgdXBkYXRlZC4KV2UgbmVlZCB0byBpbml0aWFsaXplIERTSSBmaXJzdCBz byB0aGF0IHdlIGNhbiBzZW5kIGNvbW1hbmRzIHRvIHBhbmVsLgoKU2lnbmVkLW9mZi1ieTogc2hh b21pbmcgY2hlbiA8c2hhb21pbmcuY2hlbkBtZWRpYXRlay5jb20+ClNpZ25lZC1vZmYtYnk6IFlU IFNoZW4gPHl0LnNoZW5AbWVkaWF0ZWsuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHNpLmMgfCAxMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RzaS5jCmluZGV4IGRlZDQyMDIuLjA1NjlmMmUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kc2kuYwpAQCAtMTI2LDYgKzEyNiwxMCBAQAogI2RlZmluZSBDTEtfSFNf UE9TVAkJCSgweGZmIDw8IDgpCiAjZGVmaW5lIENMS19IU19FWElUCQkJKDB4ZmYgPDwgMTYpCiAK KyNkZWZpbmUgRFNJX1ZNX0NNRF9DT04JCTB4MTMwCisjZGVmaW5lIFZNX0NNRF9FTgkJCUJJVCgw KQorI2RlZmluZSBUU19WRlBfRU4JCQlCSVQoNSkKKwogI2RlZmluZSBEU0lfQ01EUTAJCTB4MTgw CiAjZGVmaW5lIENPTkZJRwkJCQkoMHhmZiA8PCAwKQogI2RlZmluZSBTSE9SVF9QQUNLRVQJCQkw CkBAIC0yNDksNyArMjUzLDkgQEAgc3RhdGljIGludCBtdGtfZHNpX3Bvd2Vyb24oc3RydWN0IG10 a19kc2kgKmRzaSkKIAkgKiBtaXBpX3JhdGlvIGlzIG1pcGkgY2xrIGNvZWZmaWNpZW50IGZvciBi YWxhbmNlIHRoZSBwaXhlbCBjbGsgaW4gbWlwaS4KIAkgKiB3ZSBzZXQgbWlwaV9yYXRpbyBpcyAx LjA1LgogCSAqLwotCWRzaS0+ZGF0YV9yYXRlID0gZHNpLT52bS5waXhlbGNsb2NrICogMyAqIDIx IC8gKDEgKiAxMDAwICogMTApOworCWRzaS0+ZGF0YV9yYXRlID0gZHNpLT52bS5waXhlbGNsb2Nr ICogMTIgKiAyMTsKKwlkc2ktPmRhdGFfcmF0ZSAvPSAoZHNpLT5sYW5lcyAqIDEwMDAgKiAxMCk7 CisJRFJNX0RFQlVHX0RSSVZFUigic2V0IG1pcGl0eCdzIGRhdGEgcmF0ZTogJWRNSHpcbiIsIGRz aS0+ZGF0YV9yYXRlKTsKIAogCXJldCA9IGNsa19zZXRfcmF0ZShkc2ktPmhzX2NsaywgZHNpLT5k YXRhX3JhdGUgKiAxMDAwMDAwKTsKIAlpZiAocmV0IDwgMCkgewpAQCAtMzMzLDE2ICszMzksMjMg QEAgc3RhdGljIHZvaWQgbXRrX2RzaV9zZXRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogCXUz MiB2aWRfbW9kZSA9IENNRF9NT0RFOwogCiAJaWYgKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJ X01PREVfVklERU8pIHsKLQkJdmlkX21vZGUgPSBTWU5DX1BVTFNFX01PREU7Ci0KLQkJaWYgKChk c2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNUKSAmJgotCQkgICAgIShk c2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX1NZTkNfUFVMU0UpKQorCQlpZiAo ZHNpLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9WSURFT19CVVJTVCkKIAkJCXZpZF9tb2Rl ID0gQlVSU1RfTU9ERTsKKwkJZWxzZSBpZiAoZHNpLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9E RV9WSURFT19TWU5DX1BVTFNFKQorCQkJdmlkX21vZGUgPSBTWU5DX1BVTFNFX01PREU7CisJCWVs c2UKKwkJCXZpZF9tb2RlID0gU1lOQ19FVkVOVF9NT0RFOwogCX0KIAogCXdyaXRlbCh2aWRfbW9k ZSwgZHNpLT5yZWdzICsgRFNJX01PREVfQ1RSTCk7CiB9CiAKK3N0YXRpYyB2b2lkIG10a19kc2lf c2V0X3ZtX2NtZChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQoreworCW10a19kc2lfbWFzayhkc2ksIERT SV9WTV9DTURfQ09OLCBWTV9DTURfRU4sIFZNX0NNRF9FTik7CisJbXRrX2RzaV9tYXNrKGRzaSwg RFNJX1ZNX0NNRF9DT04sIFRTX1ZGUF9FTiwgVFNfVkZQX0VOKTsKK30KKwogc3RhdGljIHZvaWQg bXRrX2RzaV9wc19jb250cm9sX3ZhY3Qoc3RydWN0IG10a19kc2kgKmRzaSkKIHsKIAlzdHJ1Y3Qg dmlkZW9tb2RlICp2bSA9ICZkc2ktPnZtOwpAQCAtNDgwLDYgKzQ5MywxNiBAQCBzdGF0aWMgdm9p ZCBtdGtfZHNpX3N0YXJ0KHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJd3JpdGVsKDEsIGRzaS0+cmVn cyArIERTSV9TVEFSVCk7CiB9CiAKK3N0YXRpYyB2b2lkIG10a19kc2lfc3RvcChzdHJ1Y3QgbXRr X2RzaSAqZHNpKQoreworCXdyaXRlbCgwLCBkc2ktPnJlZ3MgKyBEU0lfU1RBUlQpOworfQorCitz dGF0aWMgdm9pZCBtdGtfZHNpX3NldF9jbWRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQorewor CXdyaXRlbChDTURfTU9ERSwgZHNpLT5yZWdzICsgRFNJX01PREVfQ1RSTCk7Cit9CisKIHN0YXRp YyB2b2lkIG10a19kc2lfc2V0X2ludGVycnVwdF9lbmFibGUoc3RydWN0IG10a19kc2kgKmRzaSkK IHsKIAl1MzIgaW50ZW4gPSBMUFJYX1JEX1JEWV9JTlRfRkxBRyB8IENNRF9ET05FX0lOVF9GTEFH IHwgVk1fRE9ORV9JTlRfRkxBRzsKQEAgLTUzOCw2ICs1NjEsMTkgQEAgc3RhdGljIGlycXJldHVy bl90IG10a19kc2lfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAlyZXR1cm4gSVJRX0hBTkRM RUQ7CiB9CiAKK3N0YXRpYyBzMzIgbXRrX2RzaV9zd2l0Y2hfdG9fY21kX21vZGUoc3RydWN0IG10 a19kc2kgKmRzaSwgdTggaXJxX2ZsYWcsIHUzMiB0KQoreworCW10a19kc2lfaXJxX2RhdGFfY2xl YXIoZHNpLCBpcnFfZmxhZyk7CisJbXRrX2RzaV9zZXRfY21kX21vZGUoZHNpKTsKKworCWlmICgh bXRrX2RzaV93YWl0X2Zvcl9pcnFfZG9uZShkc2ksIGlycV9mbGFnLCB0KSkgeworCQlEUk1fRVJS T1IoImZhaWxlZCB0byBzd2l0Y2ggY21kIG1vZGVcbiIpOworCQlyZXR1cm4gLUVUSU1FOworCX0g ZWxzZSB7CisJCXJldHVybiAwOworCX0KK30KKwogc3RhdGljIHZvaWQgbXRrX2RzaV9wb3dlcm9m ZihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCWlmIChXQVJOX09OKGRzaS0+cmVmY291bnQgPT0g MCkpCkBAIC01NDYsMTEgKzU4Miw2IEBAIHN0YXRpYyB2b2lkIG10a19kc2lfcG93ZXJvZmYoc3Ry dWN0IG10a19kc2kgKmRzaSkKIAlpZiAoLS1kc2ktPnJlZmNvdW50ICE9IDApCiAJCXJldHVybjsK IAotCW10a19kc2lfbGFuZTBfdWxwX21vZGVfZW50ZXIoZHNpKTsKLQltdGtfZHNpX2Nsa191bHBf bW9kZV9lbnRlcihkc2kpOwotCi0JbXRrX2RzaV9kaXNhYmxlKGRzaSk7Ci0KIAljbGtfZGlzYWJs ZV91bnByZXBhcmUoZHNpLT5lbmdpbmVfY2xrKTsKIAljbGtfZGlzYWJsZV91bnByZXBhcmUoZHNp LT5kaWdpdGFsX2Nsayk7CiAKQEAgLTU2NCwxMyArNTk1LDYgQEAgc3RhdGljIHZvaWQgbXRrX291 dHB1dF9kc2lfZW5hYmxlKHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJaWYgKGRzaS0+ZW5hYmxlZCkK IAkJcmV0dXJuOwogCi0JaWYgKGRzaS0+cGFuZWwpIHsKLQkJaWYgKGRybV9wYW5lbF9wcmVwYXJl KGRzaS0+cGFuZWwpKSB7Ci0JCQlEUk1fRVJST1IoImZhaWxlZCB0byBzZXR1cCB0aGUgcGFuZWxc biIpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCiAJcmV0ID0gbXRrX2RzaV9wb3dlcm9uKGRzaSk7 CiAJaWYgKHJldCA8IDApIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcG93ZXIgb24gZHNpXG4i KTsKQEAgLTU3OCwyMSArNjAyLDQzIEBAIHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2VuYWJs ZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogCX0KIAogCW10a19kc2lfcnh0eF9jb250cm9sKGRzaSk7 CisJbXRrX2RzaV9wc19jb250cm9sX3ZhY3QoZHNpKTsKKwltdGtfZHNpX3NldF92bV9jbWQoZHNp KTsKKwltdGtfZHNpX2NvbmZpZ192ZG9fdGltaW5nKGRzaSk7CisJbXRrX2RzaV9zZXRfaW50ZXJy dXB0X2VuYWJsZShkc2kpOwogCiAJbXRrX2RzaV9jbGtfdWxwX21vZGVfbGVhdmUoZHNpKTsKIAlt dGtfZHNpX2xhbmUwX3VscF9tb2RlX2xlYXZlKGRzaSk7CiAJbXRrX2RzaV9jbGtfaHNfbW9kZShk c2ksIDApOwotCW10a19kc2lfc2V0X21vZGUoZHNpKTsKIAotCW10a19kc2lfcHNfY29udHJvbF92 YWN0KGRzaSk7Ci0JbXRrX2RzaV9jb25maWdfdmRvX3RpbWluZyhkc2kpOwotCW10a19kc2lfc2V0 X2ludGVycnVwdF9lbmFibGUoZHNpKTsKKwlpZiAoZHNpLT5wYW5lbCkgeworCQlpZiAoZHJtX3Bh bmVsX3ByZXBhcmUoZHNpLT5wYW5lbCkpIHsKKwkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHByZXBh cmUgdGhlIHBhbmVsXG4iKTsKKworCQkJbXRrX2RzaV9zdG9wKGRzaSk7CisJCQltdGtfZHNpX3Bv d2Vyb2ZmKGRzaSk7CisJCQlyZXR1cm47CisJCX0KKwl9CiAKIAltdGtfZHNpX3NldF9tb2RlKGRz aSk7CiAJbXRrX2RzaV9jbGtfaHNfbW9kZShkc2ksIDEpOwogCiAJbXRrX2RzaV9zdGFydChkc2kp OwogCisJaWYgKGRzaS0+cGFuZWwpIHsKKwkJaWYgKGRybV9wYW5lbF9lbmFibGUoZHNpLT5wYW5l bCkpIHsKKwkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGVuYWJsZSB0aGUgcGFuZWxcbiIpOworCisJ CQlpZiAoZHJtX3BhbmVsX3VucHJlcGFyZShkc2ktPnBhbmVsKSkKKwkJCQlEUk1fRVJST1IoImZh aWxlZCB0byB1bnByZXBhcmUgdGhlIHBhbmVsXG4iKTsKKworCQkJbXRrX2RzaV9zdG9wKGRzaSk7 CisJCQltdGtfZHNpX3Bvd2Vyb2ZmKGRzaSk7CisJCQlyZXR1cm47CisJCX0KKwl9CisKIAlkc2kt PmVuYWJsZWQgPSB0cnVlOwogfQogCkBAIC02MDgsNiArNjU0LDE5IEBAIHN0YXRpYyB2b2lkIG10 a19vdXRwdXRfZHNpX2Rpc2FibGUoc3RydWN0IG10a19kc2kgKmRzaSkKIAkJfQogCX0KIAorCW10 a19kc2lfc3RvcChkc2kpOworCWlmICghbXRrX2RzaV9zd2l0Y2hfdG9fY21kX21vZGUoZHNpLCBW TV9ET05FX0lOVF9GTEFHLCA1MDApKSB7CisJCWlmIChkc2ktPnBhbmVsKSB7CisJCQlpZiAoZHJt X3BhbmVsX3VucHJlcGFyZShkc2ktPnBhbmVsKSkKKwkJCQlEUk1fRVJST1IoImZhaWxlZCB0byB1 bnByZXBhcmUgdGhlIHBhbmVsXG4iKTsKKwkJfQorCX0KKworCW10a19kc2lfcmVzZXRfZW5naW5l KGRzaSk7CisJbXRrX2RzaV9sYW5lMF91bHBfbW9kZV9lbnRlcihkc2kpOworCW10a19kc2lfY2xr X3VscF9tb2RlX2VudGVyKGRzaSk7CisJbXRrX2RzaV9kaXNhYmxlKGRzaSk7CisKIAltdGtfZHNp X3Bvd2Vyb2ZmKGRzaSk7CiAKIAlkc2ktPmVuYWJsZWQgPSBmYWxzZTsKLS0gCjEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK