From mboxrd@z Thu Jan 1 00:00:00 1970 From: CK Hu Subject: Re: [PATCH v11 11/12] drm/mediatek: update DSI sub driver flow for sending commands to panel Date: Thu, 19 Jan 2017 11:20:25 +0800 Message-ID: <1484796025.19089.4.camel@mtksdaap41> References: <1484117473-46644-1-git-send-email-yt.shen@mediatek.com> <1484117473-46644-12-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-12-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: YT Shen Cc: Mark Rutland , devicetree@vger.kernel.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rob Herring , linux-mediatek@lists.infradead.org, Matthias Brugger , yingjoe.chen@mediatek.com, shaoming chen , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org SGksIFlUOgoKb25lIGNvbW1lbnQgaW5saW5lLgoKT24gV2VkLCAyMDE3LTAxLTExIGF0IDE0OjUx ICswODAwLCBZVCBTaGVuIHdyb3RlOgo+IFRoaXMgcGF0Y2ggdXBkYXRlIGVuYWJsZS9kaXNhYmxl IGZsb3cgb2YgRFNJIG1vZHVsZS4KPiBPcmlnaW5hbCBmbG93IHdvcmtzIG9uIHRoZXJlIGlzIGEg YnJpZGdlIGNoaXA6IERTSSAtPiBicmlkZ2UgLT4gcGFuZWwuCj4gSW4gdGhpcyBjYXNlOiBEU0kg LT4gcGFuZWwsIHRoZSBEU0kgc3ViIGRyaXZlciBmbG93IHNob3VsZCBiZSB1cGRhdGVkLgo+IFdl IG5lZWQgdG8gaW5pdGlhbGl6ZSBEU0kgZmlyc3Qgc28gdGhhdCB3ZSBjYW4gc2VuZCBjb21tYW5k cyB0byBwYW5lbC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBzaGFvbWluZyBjaGVuIDxzaGFvbWluZy5j aGVuQG1lZGlhdGVrLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBZVCBTaGVuIDx5dC5zaGVuQG1lZGlh dGVrLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYyB8IDg5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2Vk LCA3NCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHNpLmMKPiBpbmRleCA4NWYyMmQyLi4yMTM5MmM0IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RzaS5jCj4gQEAgLTEyNiw2ICsxMjYsMTAgQEAKPiAgI2RlZmluZSBDTEtfSFNf UE9TVAkJCSgweGZmIDw8IDgpCj4gICNkZWZpbmUgQ0xLX0hTX0VYSVQJCQkoMHhmZiA8PCAxNikK PiAgCj4gKyNkZWZpbmUgRFNJX1ZNX0NNRF9DT04JCTB4MTMwCj4gKyNkZWZpbmUgVk1fQ01EX0VO CQkJQklUKDApCj4gKyNkZWZpbmUgVFNfVkZQX0VOCQkJQklUKDUpCj4gKwo+ICAjZGVmaW5lIERT SV9DTURRMAkJMHgxODAKPiAgI2RlZmluZSBDT05GSUcJCQkJKDB4ZmYgPDwgMCkKPiAgI2RlZmlu ZSBTSE9SVF9QQUNLRVQJCQkwCj4gQEAgLTM2NSwxNiArMzY5LDIzIEBAIHN0YXRpYyB2b2lkIG10 a19kc2lfc2V0X21vZGUoc3RydWN0IG10a19kc2kgKmRzaSkKPiAgCXUzMiB2aWRfbW9kZSA9IENN RF9NT0RFOwo+ICAKPiAgCWlmIChkc2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVP KSB7Cj4gLQkJdmlkX21vZGUgPSBTWU5DX1BVTFNFX01PREU7Cj4gLQo+IC0JCWlmICgoZHNpLT5t b2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9WSURFT19CVVJTVCkgJiYKPiAtCQkgICAgIShkc2kt Pm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX1NZTkNfUFVMU0UpKQo+ICsJCWlmIChk c2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNUKQo+ICAJCQl2aWRfbW9k ZSA9IEJVUlNUX01PREU7Cj4gKwkJZWxzZSBpZiAoZHNpLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lf TU9ERV9WSURFT19TWU5DX1BVTFNFKQo+ICsJCQl2aWRfbW9kZSA9IFNZTkNfUFVMU0VfTU9ERTsK PiArCQllbHNlCj4gKwkJCXZpZF9tb2RlID0gU1lOQ19FVkVOVF9NT0RFOwo+ICAJfQo+ICAKPiAg CXdyaXRlbCh2aWRfbW9kZSwgZHNpLT5yZWdzICsgRFNJX01PREVfQ1RSTCk7Cj4gIH0KPiAgCj4g K3N0YXRpYyB2b2lkIG10a19kc2lfc2V0X3ZtX2NtZChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ICt7 Cj4gKwltdGtfZHNpX21hc2soZHNpLCBEU0lfVk1fQ01EX0NPTiwgVk1fQ01EX0VOLCBWTV9DTURf RU4pOwo+ICsJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1ZNX0NNRF9DT04sIFRTX1ZGUF9FTiwgVFNf VkZQX0VOKTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgbXRrX2RzaV9wc19jb250cm9sX3ZhY3Qo c3RydWN0IG10a19kc2kgKmRzaSkKPiAgewo+ICAJc3RydWN0IHZpZGVvbW9kZSAqdm0gPSAmZHNp LT52bTsKPiBAQCAtNTEyLDYgKzUyMywxNiBAQCBzdGF0aWMgdm9pZCBtdGtfZHNpX3N0YXJ0KHN0 cnVjdCBtdGtfZHNpICpkc2kpCj4gIAl3cml0ZWwoMSwgZHNpLT5yZWdzICsgRFNJX1NUQVJUKTsK PiAgfQo+ICAKPiArc3RhdGljIHZvaWQgbXRrX2RzaV9zdG9wKHN0cnVjdCBtdGtfZHNpICpkc2kp Cj4gK3sKPiArCXdyaXRlbCgwLCBkc2ktPnJlZ3MgKyBEU0lfU1RBUlQpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBtdGtfZHNpX3NldF9jbWRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ICt7 Cj4gKwl3cml0ZWwoQ01EX01PREUsIGRzaS0+cmVncyArIERTSV9NT0RFX0NUUkwpOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgdm9pZCBtdGtfZHNpX3NldF9pbnRlcnJ1cHRfZW5hYmxlKHN0cnVjdCBtdGtf ZHNpICpkc2kpCj4gIHsKPiAgCXUzMiBpbnRlbiA9IExQUlhfUkRfUkRZX0lOVF9GTEFHIHwgQ01E X0RPTkVfSU5UX0ZMQUcgfCBWTV9ET05FX0lOVF9GTEFHOwo+IEBAIC01NzAsNiArNTkxLDE5IEBA IHN0YXRpYyBpcnFyZXR1cm5fdCBtdGtfZHNpX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4g IAlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gIH0KPiAgCj4gK3N0YXRpYyBzMzIgbXRrX2RzaV9zd2l0 Y2hfdG9fY21kX21vZGUoc3RydWN0IG10a19kc2kgKmRzaSwgdTggaXJxX2ZsYWcsIHUzMiB0KQo+ ICt7Cj4gKwltdGtfZHNpX2lycV9kYXRhX2NsZWFyKGRzaSwgaXJxX2ZsYWcpOwo+ICsJbXRrX2Rz aV9zZXRfY21kX21vZGUoZHNpKTsKPiArCj4gKwlpZiAoIW10a19kc2lfd2FpdF9mb3JfaXJxX2Rv bmUoZHNpLCBpcnFfZmxhZywgdCkpIHsKPiArCQlEUk1fRVJST1IoImZhaWxlZCB0byBzd2l0Y2gg Y21kIG1vZGVcbiIpOwo+ICsJCXJldHVybiAtRVRJTUU7Cj4gKwl9IGVsc2Ugewo+ICsJCXJldHVy biAwOwo+ICsJfQo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBtdGtfZHNpX3Bvd2Vyb2ZmKHN0cnVj dCBtdGtfZHNpICpkc2kpCj4gIHsKPiAgCWlmIChXQVJOX09OKGRzaS0+cmVmY291bnQgPT0gMCkp Cj4gQEAgLTU3OCw2ICs2MTIsMTcgQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9wb3dlcm9mZihzdHJ1 Y3QgbXRrX2RzaSAqZHNpKQo+ICAJaWYgKC0tZHNpLT5yZWZjb3VudCAhPSAwKQo+ICAJCXJldHVy bjsKPiAgCj4gKwltdGtfZHNpX3N0b3AoZHNpKTsKPiArCWlmICghbXRrX2RzaV9zd2l0Y2hfdG9f Y21kX21vZGUoZHNpLCBWTV9ET05FX0lOVF9GTEFHLCA1MDApKSB7Cj4gKwkJaWYgKGRzaS0+cGFu ZWwpIHsKPiArCQkJaWYgKGRybV9wYW5lbF91bnByZXBhcmUoZHNpLT5wYW5lbCkpIHsKCldoeSBk cm1fcGFuZWxfdW5wcmVwYXJlKCkgaW4gbXRrX2RzaV9wb3dlcm9mZigpIGJ1dCBkcm1fcGFuZWxf cHJlcGFyZSgpCmluIG10a19vdXRwdXRfZHNpX2VuYWJsZSgpPyBUaGlzIGFzeW1tZXRyaWMgZGVz aWduIHdvdWxkIGVhc2lseSBjYXVzZQpzb21lIGJ1Z3MuCgpSZWdhcmRzLApDSwoKPiArCQkJCURS TV9FUlJPUigiZmFpbGVkIHRvIHVucHJlcGFyZSB0aGUgcGFuZWxcbiIpOwo+ICsJCQkJcmV0dXJu Owo+ICsJCQl9Cj4gKwkJfQo+ICsJfQo+ICsKPiArCW10a19kc2lfcmVzZXRfZW5naW5lKGRzaSk7 Cj4gIAltdGtfZHNpX2xhbmUwX3VscF9tb2RlX2VudGVyKGRzaSk7Cj4gIAltdGtfZHNpX2Nsa191 bHBfbW9kZV9lbnRlcihkc2kpOwo+ICAKPiBAQCAtNTk2LDEzICs2NDEsNiBAQCBzdGF0aWMgdm9p ZCBtdGtfb3V0cHV0X2RzaV9lbmFibGUoc3RydWN0IG10a19kc2kgKmRzaSkKPiAgCWlmIChkc2kt PmVuYWJsZWQpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWlmIChkc2ktPnBhbmVsKSB7Cj4gLQkJaWYg KGRybV9wYW5lbF9wcmVwYXJlKGRzaS0+cGFuZWwpKSB7Cj4gLQkJCURSTV9FUlJPUigiZmFpbGVk IHRvIHNldHVwIHRoZSBwYW5lbFxuIik7Cj4gLQkJCXJldHVybjsKPiAtCQl9Cj4gLQl9Cj4gLQo+ ICAJcmV0ID0gbXRrX2RzaV9wb3dlcm9uKGRzaSk7Cj4gIAlpZiAocmV0IDwgMCkgewo+ICAJCURS TV9FUlJPUigiZmFpbGVkIHRvIHBvd2VyIG9uIGRzaVxuIik7Cj4gQEAgLTYxMCwyMiArNjQ4LDQz IEBAIHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2VuYWJsZShzdHJ1Y3QgbXRrX2RzaSAqZHNp KQo+ICAJfQo+ICAKPiAgCW10a19kc2lfcnh0eF9jb250cm9sKGRzaSk7Cj4gKwltdGtfZHNpX3Bz X2NvbnRyb2xfdmFjdChkc2kpOwo+ICsJbXRrX2RzaV9zZXRfdm1fY21kKGRzaSk7Cj4gKwltdGtf ZHNpX2NvbmZpZ192ZG9fdGltaW5nKGRzaSk7Cj4gKwltdGtfZHNpX3NldF9pbnRlcnJ1cHRfZW5h YmxlKGRzaSk7Cj4gIAo+ICAJbXRrX2RzaV9jbGtfdWxwX21vZGVfbGVhdmUoZHNpKTsKPiAgCW10 a19kc2lfbGFuZTBfdWxwX21vZGVfbGVhdmUoZHNpKTsKPiAgCW10a19kc2lfY2xrX2hzX21vZGUo ZHNpLCAwKTsKPiAtCW10a19kc2lfc2V0X21vZGUoZHNpKTsKPiAgCj4gLQltdGtfZHNpX3BzX2Nv bnRyb2xfdmFjdChkc2kpOwo+IC0JbXRrX2RzaV9jb25maWdfdmRvX3RpbWluZyhkc2kpOwo+IC0J bXRrX2RzaV9zZXRfaW50ZXJydXB0X2VuYWJsZShkc2kpOwo+ICsJaWYgKGRzaS0+cGFuZWwpIHsK PiArCQlpZiAoZHJtX3BhbmVsX3ByZXBhcmUoZHNpLT5wYW5lbCkpIHsKPiArCQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gcHJlcGFyZSB0aGUgcGFuZWxcbiIpOwo+ICsJCQlnb3RvIGVycl9kc2lfcG93 ZXJfb2ZmOwo+ICsJCX0KPiArCX0KPiAgCj4gIAltdGtfZHNpX3NldF9tb2RlKGRzaSk7Cj4gIAlt dGtfZHNpX2Nsa19oc19tb2RlKGRzaSwgMSk7Cj4gIAo+ICAJbXRrX2RzaV9zdGFydChkc2kpOwo+ ICAKPiArCWlmIChkc2ktPnBhbmVsKSB7Cj4gKwkJaWYgKGRybV9wYW5lbF9lbmFibGUoZHNpLT5w YW5lbCkpIHsKPiArCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZW5hYmxlIHRoZSBwYW5lbFxuIik7 Cj4gKwkJCWdvdG8gZXJyX3BhbmVsX2Rpc2FibGU7Cj4gKwkJfQo+ICsJfQo+ICsKPiAgCWRzaS0+ ZW5hYmxlZCA9IHRydWU7Cj4gKwo+ICsJcmV0dXJuOwo+ICtlcnJfcGFuZWxfZGlzYWJsZToKPiAr CW10a19kc2lfc3RvcChkc2kpOwo+ICsJaWYgKGRzaS0+cGFuZWwpCj4gKwkJZHJtX3BhbmVsX3Vu cHJlcGFyZShkc2ktPnBhbmVsKTsKPiArZXJyX2RzaV9wb3dlcl9vZmY6Cj4gKwltdGtfZHNpX3Bv d2Vyb2ZmKGRzaSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2Rpc2Fi bGUoc3RydWN0IG10a19kc2kgKmRzaSkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK