From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [RFC 0/2] drm/dsi: DSI for devices with different control bus Date: Thu, 10 Sep 2015 11:45:35 +0530 Message-ID: <55F12007.6020307@codeaurora.org> References: <1435641851-27295-1-git-send-email-architt@codeaurora.org> <55D40F2A.6000208@codeaurora.org> <20150819131300.GC15607@ulmo.nvidia.com> <1439993828.31432.28.camel@pengutronix.de> <20150819143452.GH15607@ulmo.nvidia.com> <1439995944.31432.34.camel@pengutronix.de> <20150819150207.GJ15607@ulmo.nvidia.com> <55D5548E.9030608@codeaurora.org> <20150820114815.GB7479@ulmo.nvidia.com> <55D6C07D.4050405@codeaurora.org> <55ED7921.2030103@codeaurora.org> <55EEB82C.2070805@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <55EEB82C.2070805@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda , Thierry Reding Cc: "devicetree@vger.kernel.org" , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org CgpPbiAwOS8wOC8yMDE1IDAzOjU3IFBNLCBBbmRyemVqIEhhamRhIHdyb3RlOgo+IE9uIDA5LzA3 LzIwMTUgMDE6NDYgUE0sIEFyY2hpdCBUYW5lamEgd3JvdGU6Cj4+IFRoaWVycnksCj4+Cj4+IE9u IDA4LzIxLzIwMTUgMTE6MzkgQU0sIEFyY2hpdCBUYW5lamEgd3JvdGU6Cj4+Pgo+Pj4KPj4+IE9u IDA4LzIwLzIwMTUgMDU6MTggUE0sIFRoaWVycnkgUmVkaW5nIHdyb3RlOgo+Pj4+IE9uIFRodSwg QXVnIDIwLCAyMDE1IGF0IDA5OjQ2OjE0QU0gKzA1MzAsIEFyY2hpdCBUYW5lamEgd3JvdGU6Cj4+ Pj4+IEhpIFRoaWVycnksIEx1Y2FzLAo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiAwOC8xOS8yMDE1IDA4 OjMyIFBNLCBUaGllcnJ5IFJlZGluZyB3cm90ZToKPj4+Pj4+IE9uIFdlZCwgQXVnIDE5LCAyMDE1 IGF0IDA0OjUyOjI0UE0gKzAyMDAsIEx1Y2FzIFN0YWNoIHdyb3RlOgo+Pj4+Pj4+IEFtIE1pdHR3 b2NoLCBkZW4gMTkuMDguMjAxNSwgMTY6MzQgKzAyMDAgc2NocmllYiBUaGllcnJ5IFJlZGluZzoK Pj4+Pj4+Pj4gT24gV2VkLCBBdWcgMTksIDIwMTUgYXQgMDQ6MTc6MDhQTSArMDIwMCwgTHVjYXMg U3RhY2ggd3JvdGU6Cj4+Pj4+Pj4+PiBIaSBUaGllcnJ5LCBBcmNoaXQsCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+IFsuLi5dCj4+Pj4+Pj4+Pj4gUGVyaGFwcyBhIGJldHRlciB3YXkgd291bGQgYmUgdG8gaW52 ZXJ0IHRoaXMgcmVsYXRpb25zaGlwLgo+Pj4+Pj4+Pj4+IEFjY29yZGluZyB0bwo+Pj4+Pj4+Pj4+ IHlvdXIgcHJvcG9zYWwgd2UnZCBoYXZlIHRvIGhhdmUgRFQgbGlrZSB0aGlzOgo+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4gICAgICBpMmNALi4uIHsKPj4+Pj4+Pj4+PiAgICAgICAgICAuLi4KPj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4+ICAgICAgICAgIGRzaS1kZXZpY2VALi4uIHsKPj4+Pj4+Pj4+PiAgICAg ICAgICAgICAgLi4uCj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgIGRzaS1idXMgPSA8JmRzaT47Cj4+ Pj4+Pj4+Pj4gICAgICAgICAgICAgIC4uLgo+Pj4+Pj4+Pj4+ICAgICAgICAgIH07Cj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+PiAgICAgICAgICAuLi4KPj4+Pj4+Pj4+PiAgICAgIH07Cj4+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+PiAgICAgIGRzaUAuLi4gewo+Pj4+Pj4+Pj4+ICAgICAgICAgIC4uLgo+Pj4+Pj4+ Pj4+ICAgICAgfTsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEludmVyc2luZyB0aGUgcmVsYXRpb25z aGlwIHdvdWxkIGJlY29tZSBzb21ldGhpbmcgbGlrZSB0aGlzOgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pj4gICAgICBpMmNALi4uIHsKPj4+Pj4+Pj4+PiAgICAgICAgICAuLi4KPj4+Pj4+Pj4+PiAgICAg IH07Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAgICAgIGRzaUAuLi4gewo+Pj4+Pj4+Pj4+ICAgICAg ICAgIC4uLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgICAgICAgcGVyaXBoZXJhbEAuLi4gewo+ Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAuLi4KPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgaTJjLWJ1 cyA9IDwmaTJjPjsKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgLi4uCj4+Pj4+Pj4+Pj4gICAgICAg ICAgfTsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICAgICAgICAgIC4uLgo+Pj4+Pj4+Pj4+ICAgICAg fTsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEJvdGggb2YgdGhvc2UgYXJlbid0IGZ1bmRhbWVudGFs bHkgZGlmZmVyZW50LCBhbmQgdGhleSBib3RoIGhhdmUKPj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+ PiBkaXNhdmFudGFnZSBvZiBsYWNraW5nIHdheXMgdG8gdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24g ZGF0YSB0aGF0Cj4+Pj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4gb3RoZXIgYnVzIG5lZWRzIHRvIGlu c3RhbnRpYXRlIHRoZSBkdW1teSBkZXZpY2UgKHN1Y2ggYXMgdGhlIHJlZwo+Pj4+Pj4+Pj4+IHBy b3BlcnR5IGZvciBleGFtcGxlLCBkZW5vdGluZyB0aGUgSTJDIHNsYXZlIGFkZHJlc3Mgb3IgdGhl IERTSQo+Pj4+Pj4+Pj4+IFZDKS4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFNvIGhvdyBhYm91dCB3 ZSBjcmVhdGUgdHdvIGRldmljZXMgaW4gdGhlIGRldmljZSB0cmVlIGFuZCBmdXNlCj4+Pj4+Pj4+ Pj4gdGhlbSBhdAo+Pj4+Pj4+Pj4+IHRoZSBkcml2ZXIgbGV2ZWw6Cj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+PiAgICAgIGkyY0AuLi4gewo+Pj4+Pj4+Pj4+ICAgICAgICAgIC4uLgo+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4gICAgICAgICAgaTJjZHNpOiBkc2ktZGV2aWNlQC4uLiB7Cj4+Pj4+Pj4+Pj4gICAg ICAgICAgICAgIC4uLgo+Pj4+Pj4+Pj4+ICAgICAgICAgIH07Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ PiAgICAgICAgICAuLi4KPj4+Pj4+Pj4+PiAgICAgIH07Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAg ICAgIGRzaUAuLi4gewo+Pj4+Pj4+Pj4+ICAgICAgICAgIC4uLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pj4gICAgICAgICAgcGVyaXBoZXJhbEAuLi4gewo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAuLi4K Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgY29udHJvbCA9IDwmaTJjZHNpPjsKPj4+Pj4+Pj4+PiAg ICAgICAgICAgICAgLi4uCj4+Pj4+Pj4+Pj4gICAgICAgICAgfTsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+ICAgICAgICAgIC4uLgo+Pj4+Pj4+Pj4+ICAgICAgfTsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ IFRoaXMgd2F5IHdlJ2xsIGdldCBib3RoIGFuIEkyQyBkZXZpY2UgYW5kIGEgRFNJIGRldmljZSB0 aGF0IHdlCj4+Pj4+Pj4+Pj4gY2FuIGZ1bGx5Cj4+Pj4+Pj4+Pj4gZGVzY3JpYmUgdXNpbmcgdGhl IHN0YW5kYXJkIGRldmljZSB0cmVlIGJpbmRpbmdzLiBBdCBkcml2ZXIgdGltZQo+Pj4+Pj4+Pj4+ IHdlIGNhbgo+Pj4+Pj4+Pj4+IGdldCB0aGUgSTJDIGRldmljZSBmcm9tIHRoZSBwaGFuZGxlIGlu IHRoZSBjb250cm9sIHByb3BlcnR5IG9mCj4+Pj4+Pj4+Pj4gdGhlIERTSQo+Pj4+Pj4+Pj4+IGRl dmljZSBhbmQgdXNlIGl0IHRvIGV4ZWN1dGUgSTJDIHRyYW5zYWN0aW9ucy4KPj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4gSSBkb24ndCByZWFsbHkgbGlrZSB0byBzZWUgdGhhdCB5b3UgYXJlIGludmVudGlu ZyB5ZXQtYW5vdGhlci13YXkgdG8KPj4+Pj4+Pj4+IGhhbmRsZSBkZXZpY2VzIGNvbm5lY3RlZCB0 byBtdWx0aXBsZSBidXNlcy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBEZXZpY2V0cmVlIGlzIHN0cnVj dHVyZWQgYWxvbmcgdGhlIGNvbnRyb2wgYnVzZXMsIGV2ZW4gaWYgdGhlCj4+Pj4+Pj4+PiBkZXZp Y2VzCj4+Pj4+Pj4+PiBhcmUgY29ubmVjdGVkIHRvIG11bHRpcGxlIGJ1c2VzLCBpbiB0aGUgRFQg dGhleSBhcmUgYWx3YXlzCj4+Pj4+Pj4+PiBjaGlsZHJlbiBvZgo+Pj4+Pj4+Pj4gdGhlIGJ1cyB0 aGF0IGlzIHVzZWQgdG8gY29udHJvbCB0aGVpciByZWdpc3RlcnMgZnJvbSB0aGUgQ1BVcwo+Pj4+ Pj4+Pj4gcGVyc3BlY3RpdmUuIFNvIGEgRFNJIGVuY29kZXIgdGhhdCBpcyBjb250cm9sbGVkIHRo cm91Z2ggaTJjIGlzCj4+Pj4+Pj4+PiBjbGVhcmx5Cj4+Pj4+Pj4+PiBhIGNoaWxkIG9mIHRoZSBp MmMgbWFzdGVyIGNvbnRyb2xsZXIgYW5kIG9ubHkgb2YgdGhhdCBvbmUuCj4+Pj4+Pj4+Cj4+Pj4+ Pj4+IEkgdGhpbmsgdGhhdCdzIGEgZmxhd2VkIGludGVycHJldGF0aW9uIG9mIHdoYXQncyBnb2lu ZyBvbiBoZXJlLiBUaGUKPj4+Pj4+Pj4gZGV2aWNlIGluIGZhY3QgaGFzIHR3byBpbnRlcmZhY2Vz OiBvbmUgaXMgSTJDLCB0aGUgb3RoZXIgaXMgRFNJLgo+Pj4+Pj4+PiBJbiBteQo+Pj4+Pj4+PiBv cGluaW9uIHRoYXQncyByZWFzb24gZW5vdWdoIHRvIHJlcHJlc2VudCBpdCBhcyB0d28gbG9naWNh bCBkZXZpY2VzLgo+Pj4+Pj4+Pgo+Pj4+Pj4+IERvZXMgaXQgcmVhbGx5IGhhdmUgMiBjb250cm9s IGludGVyZmFjZXMgdGhhdCBhcmUgdXNlZCBhdCB0aGUgc2FtZQo+Pj4+Pj4+IHRpbWU/Cj4+Pj4+ Pj4gT3IgaXMgdGhlIERTSSBjb25uZWN0aW9uIGEgcGFzc2l2ZSBkYXRhIGJ1cyBpZiB0aGUgcmVn aXN0ZXIgY29udHJvbAo+Pj4+Pj4+IGhhcHBlbnMgdGhyb3VnaCBpMmM/Cj4+Pj4+Pgo+Pj4+Pj4g VGhlIGludGVyZmFjZXMgbWF5IG5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUsIGFuZCB0aGUg RFNJIGludGVyZmFjZQo+Pj4+Pj4gbWF5IGV2ZW4gYmUgY3JpcHBsZWQsIGJ1dCB0aGUgZGV2aWNl IGlzIHN0aWxsIGFkZHJlc3NhYmxlIGZyb20gdGhlIERTSQo+Pj4+Pj4gaG9zdCBjb250cm9sbGVy LCBpZiBmb3Igbm90aGluZyBlbHNlIHRoYW4gZm9yIHJvdXRpbmcgdGhlIHZpZGVvIHN0cmVhbS4K Pj4+Pj4+Cj4+Pj4+Pj4+PiBJZiB5b3UgbmVlZCB0byBtb2RlbCBjb25uZWN0aW9ucyBiZXR3ZWVu IGRldmljZXMgdGhhdCBhcmUgbm90Cj4+Pj4+Pj4+PiByZWZsZWN0ZWQKPj4+Pj4+Pj4+IHRocm91 Z2ggdGhlIGNvbnRyb2wgYnVzIGhpZXJhcmNoeSB5b3Ugc2hvdWxkIHJlYWxseSBjb25zaWRlcgo+ Pj4+Pj4+Pj4gdXNpbmcgdGhlCj4+Pj4+Pj4+PiBzdGFuZGFyZGl6ZWQgb2YtZ3JhcGggYmluZGlu Z3MuCj4+Pj4+Pj4+PiAoRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dyYXBoLnR4 dCkKPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgb3JpZ2luYWwgcHJv cG9zYWwgd291bGQgaW5zdGFudGlhdGUgYSBkdW1teQo+Pj4+Pj4+PiBkZXZpY2UsIHNvIGl0IHdv dWxkbid0IGJlIHJlcHJlc2VudGVkIGluIERUIGF0IGFsbC4gU28gdW5sZXNzIHlvdQo+Pj4+Pj4+ PiBkbyBhZGQKPj4+Pj4+Pj4gdHdvIGxvZ2ljYWwgZGV2aWNlcyB0byBEVCAob25lIGZvciBlYWNo IGJ1cyBpbnRlcmZhY2UpLCB5b3UgZG9uJ3QKPj4+Pj4+Pj4gaGF2ZQo+Pj4+Pj4+PiBhbnl0aGlu ZyB0byBnbHVlIHRvZ2V0aGVyIHdpdGggYW4gT0YgZ3JhcGguCj4+Pj4+Pj4+Cj4+Pj4+Pj4gSSBz ZWUgdGhhdCB0aGUgaGF2aW5nIGR1bW15IGRldmljZSBpcyB0aGUgbGVhc3QgZGVzaXJhYmxlIHNv bHV0aW9uLgo+Pj4+Pj4+IEJ1dAo+Pj4+Pj4+IGlmIHRoZXJlIGlzIG9ubHkgb25lIGNvbnRyb2wg YnVzIHRvIHRoZSBkZXZpY2UgSSB0aGluayBpdCBzaG91bGQgYmUKPj4+Pj4+PiBvbmUKPj4+Pj4+ PiBkZXZpY2Ugc2l0dGluZyBiZW5lYXRoIHRoZSBjb250cm9sIGJ1cy4KPj4+Pj4+Pgo+Pj4+Pj4+ IFlvdSBjYW4gdGhlbiB1c2Ugb2YtZ3JhcGggdG8gbW9kZWwgdGhlIGRhdGEgcGF0aCBiZXR3ZWVu IHRoZSBEU0kKPj4+Pj4+PiBlbmNvZGVyCj4+Pj4+Pj4gYW5kIGRldmljZS4KPj4+Pj4+Cj4+Pj4+ PiBCdXQgeW91IHdpbGwgYmUgbmVlZGluZyBhIGRldmljZSBiZWxvdyB0aGUgRFNJIGhvc3QgY29u dHJvbGxlciB0bwo+Pj4+Pj4gcmVwcmVzZW50IHRoYXQgZW5kcG9pbnQgb2YgdGhlIGNvbm5lY3Rp b24uIFRoZSBEU0kgaG9zdCBjb250cm9sbGVyCj4+Pj4+PiBpdHNlbGYgaXMgaW4gbm8gd2F5IGNv bm5lY3RlZCB0byB0aGUgSTJDIGFkYXB0ZXIuIFlvdSB3b3VsZCBoYXZlIHRvCj4+Pj4+PiBhZGQg c29tZSBzb3J0IG9mIHF1aXJrIHRvIHRoZSBEU0kgY29udHJvbGxlciBiaW5kaW5nIHRvIGFsbG93 IGl0IHRvCj4+Pj4+Cj4+Pj4+IFRoYW5rcyBmb3IgdGhlIHJldmlldy4KPj4+Pj4KPj4+Pj4gSSBp bXBsZW1lbnRlZCB0aGlzIHRvIHN1cHBvcnQgQURWNzUzMyBEU0kgdG8gSERNSSBlbmNvZGVyIGNo aXAsIHdoaWNoCj4+Pj4+IGhhcyBhIERTSSB2aWRlbyBidXMgYW5kIGFuIGkyYyBjb250cm9sIGJ1 cy4KPj4+Pj4KPj4+Pj4gVGhlcmUgd2VyZW4ndCBhbnkgcXVpcmtzIGFzIHN1Y2ggaW4gdGhlIGRl dmljZSB0cmVlIHdoZW4gSSB0cmllZCB0bwo+Pj4+PiBpbXBsZW1lbnQgdGhpcy4gVGhlIERUIHNl ZW1zIHRvIG1hbmFnZSBmaW5lIHdpdGhvdXQgYSBub2RlCj4+Pj4+IGNvcnJlc3BvbmRpbmcgdG8g YSBtaXBpX2RzaV9kZXZpY2U6Cj4+Pj4+Cj4+Pj4+IGkyY19hZGFwQC4uIHsKPj4+Pj4gICAgICBh ZHY3NTMzQC4uIHsKPj4+Pj4KPj4+Pj4gICAgICAgICAgcG9ydCB7Cj4+Pj4+ICAgICAgICAgICAg ICBhZHZfaW46IGVuZHBvaW50IHsKPj4+Pj4gICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9p bnQgPSA8JmRzaV9vdXQ+Owo+Pj4+PiAgICAgICAgICAgICAgfTsKPj4+Pj4gICAgICAgICAgfTsK Pj4+Pj4gICAgICB9Owo+Pj4+PiB9Owo+Pj4+Pgo+Pj4+PiBkc2lfaG9zdEAuLiB7Cj4+Pj4+ICAg ICAgLi4uCj4+Pj4+ICAgICAgLi4uCj4+Pj4+Cj4+Pj4+ICAgICAgcG9ydCB7Cj4+Pj4+ICAgICAg ICAgIGRzaV9vdXQ6IGVuZHBvaW50IHsKPj4+Pj4gICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2lu dCA9IDwmYWR2X2luPjsKPj4+Pj4gICAgICAgICAgfQo+Pj4+PiAgICAgIH07Cj4+Pj4+IH07Cj4+ Pj4+Cj4+Pj4+IEl0J3MgdGhlIGkyYyBkcml2ZXIncyBqb2IgdG8gcGFyc2UgdGhlIGdyYXBoIGFu ZCByZXRyaWV2ZSB0aGUKPj4+Pj4gcGhhbmRsZSB0byB0aGUgZHNpIGhvc3QuIFVzaW5nIHRoaXMs IGl0IGNhbiBwcm9jZWVkIHdpdGgKPj4+Pj4gcmVnaXN0ZXJpbmcgaXRzZWxmIHRvIHRoaXMgaG9z dCB1c2luZyB0aGUgbmV3IGRzaSBmdW5jcy4gVGhpcwo+Pj4+PiBwYXRjaCBkb2VzIHRoZSBzYW1l IGZvciB0aGUgYWR2NzUzMyBpMmMgZHJpdmVyOgo+Pj4+Pgo+Pj4+PiBodHRwOi8vd3d3LnNwaW5p Y3MubmV0L2xpc3RzL2RyaS1kZXZlbC9tc2c4Njg0MC5odG1sCj4+Pj4+Cj4+Pj4+PiBob29rIHVw IHdpdGggYSBjb250cm9sIGVuZHBvaW50LiBBbmQgdGhlbiB5b3UnbGwgbmVlZCBtb3JlIHF1aXJr cwo+Pj4+Pj4gdG8gZGVzY3JpYmUgd2hhdCBraW5kIG9mIERTSSBkZXZpY2UgdGhpcyBpcy4KPj4+ Pj4KPj4+Pj4gQ291bGQgeW91IGV4cGxhaW4gd2hhdCB5b3UgbWVhbnQgYnkgdGhpcz8gSS5lLiBk ZXNjcmliaW5nIHRoZSBraW5kCj4+Pj4+IG9mIERTSSBkZXZpY2U/Cj4+Pj4KPj4+PiBEZXNjcmli aW5nIHRoZSBudW1iZXIgb2YgbGFuZXMsIHNwZWNpZnlpbmcgdGhlIHZpcnR1YWwgY2hhbm5lbCwg bW9kZQo+Pj4+IGZsYWdzLCBldGMuIFlvdSBjb3VsZCBwcm9iYWJseSBzZXQgdGhlIG51bWJlciBv ZiBsYW5lcyBhbmQgbW9kZSBmbGFncwo+Pj4+IHZpYSB0aGUgSTJDIGRyaXZlciwgYnV0IGVzcGVj aWFsbHkgdGhlIHZpcnR1YWwgY2hhbm5lbCBjYW5ub3QgYmUgc2V0Cj4+Pj4gYmVjYXVzZSBpdCBp c24ndCBrbm93biB0byB0aGUgSTJDIERUIGJyYW5jaCBvZiB0aGUgZGV2aWNlLgo+Pj4KPj4+IEkg YWdyZWUgd2l0aCB0aGUgVkMgcGFydC4gSXQgY291bGQgYmUgYSBEVCBlbnRyeSB3aXRoaW4gdGhl IGkyYyBjbGllbnQKPj4+IG5vZGUsIGJ1dCB0aGF0IGRvZXMgbWFrZSBpdCBzZWVtIGxpa2UgYSBx dWlyay4gVGhlICdyZWcnIHdheSB1bmRlciB0aGUKPj4+IERTSSBob3N0IGlzIGRlZmluaXRlbHkg YmV0dGVyIHRvIHBvcHVsYXRlIHRoZSB2aXJ0dWFsIGNoYW5uZWwuCj4+Pgo+Pj4+Cj4+Pj4+IFRo ZSBkc2kgZGV2aWNlIGNyZWF0ZWQgaXNuJ3QgcmVhbGx5IGEgZHVtbXkgZGV2aWNlIGFzIHN1Y2gu IEl0J3MKPj4+Pj4gZHVtbXkgaW4gdGhlIHNlbnNlIHRoYXQgdGhlcmUgaXNuJ3QgYSByZWFsIGRz aSBkcml2ZXIgYXNzb2NpYXRlZAo+Pj4+PiB3aXRoIGl0LiBUaGUgZHNpIGRldmljZSBpcyBzdGls bCB1c2VkIHRvIGF0dGFjaCB0byBhIG1pcGkgZHNpIGhvc3QsCj4+Pj4+IHRoZSB3YXkgbm9ybWFs IGRzaSBkZXZpY2VzIGRvLgo+Pj4+Cj4+Pj4gSSB1bmRlcnN0YW5kLCBidXQgSSBkb24ndCBzZWUg d2h5IGl0IGhhcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgdGhlIEkyQwo+Pj4+IGRyaXZlciwgdGhh dCdzIHdoYXQgSSBmaW5kIGJhY2t3YXJkcy4gVGhlcmUgaXMgYWxyZWFkeSBhIHN0YW5kYXJkIHdh eQo+Pj4+IGZvciBpbnN0YW50aWF0aW5nIERTSSBkZXZpY2VzLCB3aHkgbm90IHVzZSBpdD8KPj4+ Cj4+PiBJIGFzc3VtZWQgd2UgY291bGQgZWl0aGVyIHJlcHJlc2VudCB0aGUgZGV2aWNlIHVzaW5n IGFuIGkyYyBkcml2ZXIsIG9yCj4+PiBkc2ksIGJ1dCBub3QgYm90aC4gSGVuY2UsIEkgY2FtZSB1 cCB3aXRoIHRoaXMgYXBwcm9hY2guCj4+Pgo+Pj4+Cj4+Pj4+PiBPbiB0aGUgb3RoZXIgaGFuZCBp ZiB5b3UgcHJvcGVybHkgaW5zdGFudGlhdGUgdGhlIERTSSBkZXZpY2UgeW91IGNhbgo+Pj4+Pj4g ZWFzaWx5IHdyaXRlIGEgZHJpdmVyIGZvciBpdCwgYW5kIHRoZSBkcml2ZXIgd2lsbCBzZXQgdXAg dGhlIGNvcnJlY3QKPj4+Pj4+IHByb3BlcnRpZXMgYXMgaW1wbGllZCBieSB0aGUgY29tcGF0aWJs ZSBzdHJpbmcuIE9uY2UgeW91IGhhdmUgdGhhdCB5b3UKPj4+Pj4+IGNhbiBlYXNpbHkgaG9vayBp dCB1cCB0byB0aGUgSTJDIGNvbnRyb2wgaW50ZXJmYWNlIGluIHdoYXRldmVyIHdheSB5b3UKPj4+ Pj4+IGxpa2UsIGJlIHRoYXQgYW4gT0YgZ3JhcGggb3IganVzdCBhIHNpbXBsZSB1bmlkaXJlY3Rp b25hbCBsaW5rIGJ5Cj4+Pj4+PiBwaGFuZGxlLgo+Pj4+Pj4KPj4+Pj4KPj4+Pj4gV2l0aCB0aGUg ZnVzZWQgYXBwcm9hY2ggeW91IHN1Z2dlc3RlZCwgd2Ugd291bGQgaGF2ZSAyIGRyaXZlcnM6IG9u ZSBpMmMKPj4+Pj4gYW5kIHRoZSBvdGhlciBkc2kuIFRoZSBpMmMgY2xpZW50IGRyaXZlciB3b3Vs ZCBiZSBtb3JlIG9yIGxlc3MgbWluaW1hbCwKPj4+Pj4gcHJlcGFyaW5nIGFuIGkyY19jbGllbnQg ZGV2aWNlIGZvciB0aGUgZHNpIGRyaXZlciB0byB1c2UuIElzIG15Cj4+Pj4+IHVuZGVyc3RhbmRp bmcgY29ycmVjdD8KPj4+Pgo+Pj4+IENvcnJlY3QuIFRoYXQncyBraW5kIG9mIHNpbWlsYXIgdG8g dGhlIHdheSBhbiBIRE1JIGVuY29kZXIgZHJpdmVyIHdvdWxkCj4+Pj4gdXNlIGFuIEkyQyBhZGFw dGVyIHRvIHF1ZXJ5IEVESUQuIFRoZSBpMmNfY2xpZW50IGRldmljZSB3b3VsZCBiZSBhIG1lYW5z Cj4+Pj4gZm9yIHRoZSBEU0kgZHJpdmVyIHRvIGFjY2VzcyB0aGUgY29udHJvbCBpbnRlcmZhY2Uu Cj4+Pgo+Pj4gT2theS4KPj4+Cj4+PiBBbHRob3VnaCwgSSdtIG5vdCBzdXJlIGFib3V0IHRoZSBI RE1JIGVuY29kZXIgZXhhbXBsZS4gQW4gSERNSQo+Pj4gZW5jb2RlciB3b3VsZCByZWFkIG9mZiBl ZGlkIGRpcmVjdGx5IGZyb20gdGhlIGFkYXB0ZXIod2l0aCBhbiBhZGRyZXNzCj4+PiBzcGVjaWZp ZWQpLCBpdCB3b3VsZG4ndCBuZWVkIHRvIGNyZWF0ZSBhbiBpMmMgY2xpZW50IGRldmljZS4gVGhl cmVmb3JlLAo+Pj4gYW4gSERNSSBlbmNvZGVyIHdvdWxkbid0IG5lZWQgdG8gaGF2ZSBhIHNlcGFy YXRlIG5vZGUgZm9yIGkyYyBpbiBEVC4KPj4+Cj4+Pj4KPj4+Pj4gV2UgY2FuIGRvIHdpdGhvdXQg ZHVtbXkgZHNpIGRldmljZXMgd2l0aCB0aGlzIG1ldGhvZC4gQnV0LCByZXByZXNlbnRpbmcKPj4+ Pj4gYSBkZXZpY2Ugd2l0aCAyIERUIG5vZGVzIHNlZW1zIGEgYml0IG9mZi4gV2UnZCBhbHNvIG5l ZWQgdG8gY29tcGF0aWJsZQo+Pj4+PiBzdHJpbmdzIGZvciB0aGUgc2FtZSBkZXZpY2UsIG9uZSBm b3IgdGhlIGkyYyBwYXJ0LCBhbmQgdGhlIG90aGVyIGZvcgo+Pj4+PiB0aGUgZHNpIHBhcnQuCj4+ Pj4KPj4+PiBJIGFncmVlIHRoYXQgdGhpcyBzb21ld2hhdCBzdHJldGNoZXMgdGhlIGNhcGFiaWxp dGllcyBvZiBkZXZpY2UgdHJlZS4KPj4+PiBBbm90aGVyIGFsdGVybmF0aXZlIEkgZ3Vlc3Mgd291 bGQgYmUgdG8gbm90IGhhdmUgYSBjb21wYXRpYmxlIHN0cmluZyBmb3IKPj4+PiB0aGUgSTJDIGRl dmljZSBhdCBhbGwgKHRoYXQncyB0ZWNobmljYWxseSBub3QgdmFsaWQsIEkgZ3Vlc3MpIGJlY2F1 c2Ugd2UKPj4+PiByZWFsbHkgZG9uJ3QgbmVlZCBhbiBJMkMgZHJpdmVyIGZvciB0aGUgZGV2aWNl LiBXaGF0IHdlIHJlYWxseSBuZWVkIGlzIGEKPj4+PiBEU0kgZHJpdmVyIHdpdGggYSBtZWFucyB0 byB0YWxrIG92ZXIgc29tZSBJMkMgYnVzIHdpdGggc29tZSBvdGhlciBwYXJ0Cj4+Pj4gb2YgaXRz IGRldmljZS4KPj4+Cj4+PiBJIHRoaW5rIHdoYXQgdGhlIGRyaXZlciBzaG91bGQgJ3JlYWxseScg YmUgaXMgYSBiaXQgc3ViamVjdGl2ZSwgYW5kIGNhbgo+Pj4gdmFyeSBiYXNlZCBvbiB3aGF0IHRo ZSBidXNlcyBhcmUgdXNlZCBmb3IgaW4gdGhlIGRldmljZS4gRm9yIHRoZSBUb3NoaWJhCj4+PiBj aGlwIHRoYXQgSmFuaSBtZW50aW9uZWQsIGl0IHRlbmRzIG1vcmUgdG93YXJkcyBhIERTSSBkcml2 ZXIuIFdoZXJlYXMsCj4+PiBmb3IgYW4gQURWNzV4eCBjaGlwLCBpdCdzIGNsb3NlciB0byBhbiBJ MkMgZHJpdmVyIHNpbmNlIG9ubHkgSTJDIGNhbiBiZQo+Pj4gdXNlZCB0byBjb25maWd1cmUgdGhl IGNoaXAgcmVnaXN0ZXJzLgo+Pj4KPj4+IEFsdGhvdWdoLCBJIGFncmVlIHdpdGggdGhlIHBvaW50 IHlvdSBtYWRlIGFib3V0IHRoZSBEU0kgYnVzIGhlcmU6Cj4+Pgo+Pj4gImFuZCB0aGUgRFNJIGlu dGVyZmFjZSBtYXkgZXZlbiBiZSBjcmlwcGxlZCwgYnV0IHRoZSBkZXZpY2UgaXMgc3RpbGwKPj4+ IGFkZHJlc3NhYmxlIGZyb20gdGhlIERTSSBob3N0IGNvbnRyb2xsZXIsIGlmIGZvciBub3RoaW5n IGVsc2UgdGhhbiBmb3IKPj4+IHJvdXRpbmcgdGhlIHZpZGVvIHN0cmVhbS4iCj4+Pgo+Pj4gVGhl IGZhY3QgdGhhdCB0aGUgZGF0YSBvbiB0aGUgRFNJIGJ1cyBjb250YWlucyByb3V0aW5nIGluZm9y bWF0aW9uIChpLmUsCj4+PiB2aXJ0dWFsIGNoYW5uZWwgbnVtYmVyKSBhbHdheXMgZ2l2ZXMgaXQg c29tZSAnY29udHJvbCcgYXNwZWN0Lgo+Pj4KPj4+Pgo+Pj4+PiAgIEZyb20gYW4gYWR2NzV4eCBk cml2ZXIgcGVyc3BlY3RpdmUsIGl0IHNob3VsZCBhbHNvIHN1cHBvcnQgdGhlIEFEVjc1MTEKPj4+ Pj4gY2hpcCwgd2hpY2ggaXMgYSBSR0IvRFBJIHRvIEhETUkgZW5jb2Rlci4gRm9yIGFkdjc1MTEs IHdlIGRvbid0IG5lZWQgYQo+Pj4+PiBEU0kgRFQgbm9kZS4gSXQgd291bGQgYmUgYSBiaXQgaW5j b25zaXN0ZW50IHRvIGhhdmUgdGhlIGJpbmRpbmdzCj4+Pj4+IHJlcXVpcmUgYm90aCBEU0kgYW5k IEkyQyBub2RlcyBmb3Igb25lIGNoaXAsIGFuZCBvbmx5IEkyQyBub2RlIGZvciB0aGUKPj4+Pj4g b3RoZXIsIHdpdGggYm90aCBjaGlwcyBiZWluZyBzdXBwb3J0ZWQgYnkgdGhlIHNhbWUgZHJpdmVy Lgo+Pj4+Cj4+Pj4gV2h5IHdvdWxkIHRoYXQgYmUgaW5jb25zaXN0ZW50PyBUaGF0IHNvdW5kcyBs aWtlIHRoZSBtb3N0IGFjY3VyYXRlCj4+Pj4gcmVwcmVzZW50YXRpb24gb2YgdGhlIGhhcmR3YXJl IHRvIG1lLgo+Pj4KPj4+IEluY29uc2lzdGVudCB3YXNuJ3QgdGhlIHJpZ2h0IHRlcm0uIEkgc2hv dWxkIGhhdmUgdXNlZCAndW5jb21tb24nIDopCj4+PiBJdCdzIGNvbW1vbiBmb3IgdHdvIGNoaXBz IG9mIHRoZSBzYW1lIGZhbWlseSB0byBoYXZlIGEgZGlmZmVyZW50IHNldAo+Pj4gb3B0aW9uYWwg cHJvcGVydGllcyBpbiBEVCwgYnV0IGl0J3Mgbm90IGNvbW1vbiBmb3IgdHdvIGNoaXBzIG9mIHRo ZQo+Pj4gc2FtZSBmYW1pbHkgdG8gYmUgcmVwcmVzZW50ZWQgYnkgYSBkaWZmZXJlbnQgbnVtYmVy IG9mIGRldmljZXMgaW4KPj4+IERULgo+Pj4KPj4+IEkgZG9uJ3QgaGF2ZSBhbiBpc3N1ZSB3aXRo IHRoZSBmdXNlZCBhcHByb2FjaCB5b3Ugc3VnZ2VzdGVkLCBhcyBsb25nCj4+PiBhcyBwZW9wbGUg YXJlIG9rYXkgd2l0aCB0aGUgRFQgcGFydHMuIEVzcGVjaWFsbHkgdGhlIHBhcnQgb2YgbmVlZGlu ZyAyCj4+PiBjb21wYXRpYmxlIHN0cmluZ3MgaW4gdGhlIERULgo+Pgo+PiBJIGltcGxlbWVudGVk IHRoZSBBRFY3NTMzIGRyaXZlciB3aXRoIHRoZSBhcHByb2FjaCB5b3Ugc3VnZ2VzdGVkIGFib3Zl Cj4+ICgyIGRyaXZlcnMgZm9yIDIgZGlmZmVyZW50IGNvbXBvbmVudHMgb2YgdGhlIGNoaXApLiBJ IHBvc3RlZCBpdCBvdXQKPj4ganVzdCBhIHdoaWxlIGJhY2sgKHdpdGggeW91IGluIGxvb3ApLgo+ Pgo+PiBUaGUgRFQgbm9kZSB3aXRoIHRoaXMgYXBwb3JhY2ggd291bGQgbG9vayBsaWtlIHRoaXM6 Cj4+Cj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9ib2Rkb2IvbGludXgvYmxvYi9jMjRjYmY2M2E2OTk4 ZDAwMDk1YzEwMTIyY2U1ZTM3Yjc2NGM3ZGJhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9hcHE4 MDE2LXNiYy5kdHNpI0wxNjIKPj4KPj4gVGhlIG1haW4gaXJyaXRhbnQgd2l0aCB0aGUgJzIgZHJp dmVyJyBhcHByb2FjaCBpcyB0aGF0IHdlIG5lZWQgdG8KPj4gc2hhcmUgdGhlIHBlci1kZXZpY2Ug ZHJpdmVyIGRhdGEgd2l0aCB0aGVtLiBGb3IgQURWNzUzMywgSSd2ZSBtYWRlCj4+IHRoZSBpMmMg ZHJpdmVyIGFsbG9jYXRlIGRyaXZlciBkYXRhIChzdHJ1Y3QgYWR2NzUxMSkuCj4+Cj4+IFRoZSBk c2kgZHJpdmVyIGdldHMgdGhlIGRyaXZlciBkYXRhIGluIHRoZSBmb2xsb3dpbmcgd2F5Ogo+Pgo+ PiAtIFRoZSBpMmMgZHJpdmVyIHNldHMgdGhlIGRyaXZlciBkYXRhIGFzIGl0cyBjbGllbnQgZGF0 YSB1c2luZwo+PiAgICAgaTJjX3NldF9jbGllbnRkYXRhKCkKPj4gLSBQYXJzZSB0aGUgaTJjLWNv bnRyb2wgcGhhbmRsZSB0byBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgaTJjIGNsaWVudC4KPj4gLSBF eHRyYWN0IHRoZSBhZHY3NTExIHN0cnVjdCBieSBnZXR0aW5nIGkyY19nZXRfY2xpZW50ZGF0YSgp Cj4+Cj4+IFRoaXMgd2F5IG9mIGdldHRpbmcgdGhlIHNhbWUgZHJpdmVyIGRhdGEgaXMgYSBiaXQg c3RyYW5nZSwgYnV0IGl0Cj4+IHdvcmtzLiBGb3IgdGhpcywgd2UgZG8gbmVlZCB0byBlbnN1cmUg dGhhdCB0aGUgZHNpIGRyaXZlciBkZWZlcnMKPj4gYXMgbG9uZyBhcyB0aGUgaTJjIGRyaXZlciBp c24ndCBwcm9iZWQuCj4+Cj4+IEkndmUgbm93IGltcGxlbWVudGVkIGJvdGggYXBwcm9hY2hlcyBm b3IgdGhlIGRyaXZlci4gVGhlIGZpcnN0IHVzaW5nCj4+IGEgZHVtbXkgZHNpIGRldmljZSwgYW5k IHRoaXMgb25lIHVzaW5nIDIgZHJpdmVycyAod2l0aCBib3RoIGJlaW5nCj4+IHJlcHJlc2VudGVk IGluIERUKS4gVGhlIGFkdmFudGFnZSBvZiB0aGUgbGF0dGVyIGlzIHRoYXQgd2UgZG9uJ3QgbmVl ZAo+PiB0byBjcmVhdGUgYW55IGR1bW15IGRldmljZSBzdHVmZiwgdGhlIGRpc2FkdmFudGFnZSBp cyB0aGF0IERUIGlzIGEgYml0Cj4+IHVuY29tbW9uLgo+Pgo+PiBDYW4gd2Ugbm93IGNvbWUgdG8g YSBjb25jbHVzaW9uIG9uIHdoYXQgYXBwcm9hY2ggaXMgYmV0dGVyPwo+Cj4gRFNJIGJ5IGRlc2ln biBpcyBkYXRhIGJ1cyB3aGljaCBjYW4gYmUgdXNlZCBhZGRpdGlvbmFsbHkgYXMgYSBjb250cm9s IGJ1cywgYnV0Cj4gaW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UgaXQgaXMgcHVyZWx5IGRhdGEgYnVz LiBTbyBvZi1ncmFwaCBiaW5kaW5ncyBzZWVtIHRvIGJlCj4gYmV0dGVyIGNob2ljZS4gQXMgYWxy ZWFkeSBMdWNhcyBTdGFjaCBzYWlkIERUIGhpZXJhcmNoeSBzaG91bGQgZGVzY3JpYmUgY29udHJv bAo+IGJ1c2VzIGFuZCBvZi1ncmFwaCBiaW5kaW5ncyBzaG91bGQgZGVzY3JpYmUgZGF0YSBidXMu IEFyZ3VtZW50IHRoYXQgaHcgaGFzIHR3bwo+IGludGVyZmFjZXMgZG9lcyBub3Qgc2VlbSB0byBi ZSB2YWxpZCBoZXJlIC0gaXQgaGFzIG9ubHkgb25lIGNvbnRyb2wgaW50ZXJmYWNlLgo+IFRoZSBv dGhlciBvbmUgaXMgb25seSBmb3IgZGF0YSwgcmVwcmVzZW50aW5nIGV2ZXJ5IGRhdGEgaW50ZXJm YWNlIHVzaW5nIERUCj4gaGllcmFyY2h5IHdvdWxkIGxlYWQgdG8gaW5mbGF0aW9uIG9mIHBzZXVk byBkZXZpY2VzLgo+Cj4gT24gdGhlIG90aGVyIHNpZGUgSSBkbyBub3Qgc2VlIGR1bW15IGRldmlj ZSBhcHByb2FjaCBpZGVhbCBzb2x1dGlvbiwgSSBndWVzcwo+IGxpZ2h0d2VpZ2h0IGZyYW1ld29y ayBwcm92aWRpbmcgRFNJIGhvc3RzIGRldGFjaGVkIGZyb20gTGludXggZGV2aWNlIG1vZGVsIGNv dWxkCj4gd29yayBiZXR0ZXIgaGVyZS4KPiBUaGUgb25seSBwcm9ibGVtIGhlcmUgaXMgdGhhdCBp dCBzaG91bGQgY29leGlzdCBzb21laG93IHdpdGggZHNpIGJ1cyB1c2VkIHRvCj4gY29udHJvbCBk ZXZpY2VzLiBBbnl3YXkgaW1wbGVtZW50aW5nIGl0IHNob3VsZG4ndCBiZSBoYXJkLCBxdWVzdGlv biBpcyBpZiBpdAo+IHdvdWxkIGJlIGV2ZW50dWFsbHkgYWNjZXB0ZWQgOikgSSBndWVzcyB3ZSBj YW4gbGl2ZSBmb3Igbm93IHdpdGggZHVtbXkgZGV2cy4KPgo+IFN1bW1hcml6aW5nIEkgd291bGQg cHJlZmVyIHZlcnNpb24gd2l0aCBkdW1teSBkZXZpY2VzLCBhcyBpdCBzZWVtcyBtb3JlCj4gY29t cGF0aWJsZSB3aXRoIERUIGRlc2lnbi4KClRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrLiBJJ2xsIHNw aW4gYSBuZXdlciB2ZXJzaW9uIG9mIHRoZSBkdW1teSBkc2kgZGV2IApwYXRjaGVzIGFmdGVyIHdh aXRpbmcgZm9yIHNvbWUgbW9yZSBjb21tZW50cy4KCkFyY2hpdAoKPiAtLQo+IFRvIHVuc3Vic2Ny aWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1hcm0t bXNtIiBpbgo+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwu b3JnCj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpv cmRvbW8taW5mby5odG1sCj4KCi0tIApRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBp cyBhIG1lbWJlciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxh Ym9yYXRpdmUgUHJvamVjdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752602AbbIJGPp (ORCPT ); Thu, 10 Sep 2015 02:15:45 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:59880 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750741AbbIJGPn (ORCPT ); Thu, 10 Sep 2015 02:15:43 -0400 Subject: Re: [RFC 0/2] drm/dsi: DSI for devices with different control bus To: Andrzej Hajda , Thierry Reding References: <1435641851-27295-1-git-send-email-architt@codeaurora.org> <55D40F2A.6000208@codeaurora.org> <20150819131300.GC15607@ulmo.nvidia.com> <1439993828.31432.28.camel@pengutronix.de> <20150819143452.GH15607@ulmo.nvidia.com> <1439995944.31432.34.camel@pengutronix.de> <20150819150207.GJ15607@ulmo.nvidia.com> <55D5548E.9030608@codeaurora.org> <20150820114815.GB7479@ulmo.nvidia.com> <55D6C07D.4050405@codeaurora.org> <55ED7921.2030103@codeaurora.org> <55EEB82C.2070805@samsung.com> Cc: "devicetree@vger.kernel.org" , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org From: Archit Taneja Message-ID: <55F12007.6020307@codeaurora.org> Date: Thu, 10 Sep 2015 11:45:35 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <55EEB82C.2070805@samsung.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/08/2015 03:57 PM, Andrzej Hajda wrote: > On 09/07/2015 01:46 PM, Archit Taneja wrote: >> Thierry, >> >> On 08/21/2015 11:39 AM, Archit Taneja wrote: >>> >>> >>> On 08/20/2015 05:18 PM, Thierry Reding wrote: >>>> On Thu, Aug 20, 2015 at 09:46:14AM +0530, Archit Taneja wrote: >>>>> Hi Thierry, Lucas, >>>>> >>>>> >>>>> On 08/19/2015 08:32 PM, Thierry Reding wrote: >>>>>> On Wed, Aug 19, 2015 at 04:52:24PM +0200, Lucas Stach wrote: >>>>>>> Am Mittwoch, den 19.08.2015, 16:34 +0200 schrieb Thierry Reding: >>>>>>>> On Wed, Aug 19, 2015 at 04:17:08PM +0200, Lucas Stach wrote: >>>>>>>>> Hi Thierry, Archit, >>>>>>>>> >>>>>>> [...] >>>>>>>>>> Perhaps a better way would be to invert this relationship. >>>>>>>>>> According to >>>>>>>>>> your proposal we'd have to have DT like this: >>>>>>>>>> >>>>>>>>>> i2c@... { >>>>>>>>>> ... >>>>>>>>>> >>>>>>>>>> dsi-device@... { >>>>>>>>>> ... >>>>>>>>>> dsi-bus = <&dsi>; >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> dsi@... { >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> Inversing the relationship would become something like this: >>>>>>>>>> >>>>>>>>>> i2c@... { >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> dsi@... { >>>>>>>>>> ... >>>>>>>>>> >>>>>>>>>> peripheral@... { >>>>>>>>>> ... >>>>>>>>>> i2c-bus = <&i2c>; >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> Both of those aren't fundamentally different, and they both have >>>>>>>>>> the >>>>>>>>>> disavantage of lacking ways to transport configuration data that >>>>>>>>>> the >>>>>>>>>> other bus needs to instantiate the dummy device (such as the reg >>>>>>>>>> property for example, denoting the I2C slave address or the DSI >>>>>>>>>> VC). >>>>>>>>>> >>>>>>>>>> So how about we create two devices in the device tree and fuse >>>>>>>>>> them at >>>>>>>>>> the driver level: >>>>>>>>>> >>>>>>>>>> i2c@... { >>>>>>>>>> ... >>>>>>>>>> >>>>>>>>>> i2cdsi: dsi-device@... { >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> dsi@... { >>>>>>>>>> ... >>>>>>>>>> >>>>>>>>>> peripheral@... { >>>>>>>>>> ... >>>>>>>>>> control = <&i2cdsi>; >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> ... >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> This way we'll get both an I2C device and a DSI device that we >>>>>>>>>> can fully >>>>>>>>>> describe using the standard device tree bindings. At driver time >>>>>>>>>> we can >>>>>>>>>> get the I2C device from the phandle in the control property of >>>>>>>>>> the DSI >>>>>>>>>> device and use it to execute I2C transactions. >>>>>>>>>> >>>>>>>>> I don't really like to see that you are inventing yet-another-way to >>>>>>>>> handle devices connected to multiple buses. >>>>>>>>> >>>>>>>>> Devicetree is structured along the control buses, even if the >>>>>>>>> devices >>>>>>>>> are connected to multiple buses, in the DT they are always >>>>>>>>> children of >>>>>>>>> the bus that is used to control their registers from the CPUs >>>>>>>>> perspective. So a DSI encoder that is controlled through i2c is >>>>>>>>> clearly >>>>>>>>> a child of the i2c master controller and only of that one. >>>>>>>> >>>>>>>> I think that's a flawed interpretation of what's going on here. The >>>>>>>> device in fact has two interfaces: one is I2C, the other is DSI. >>>>>>>> In my >>>>>>>> opinion that's reason enough to represent it as two logical devices. >>>>>>>> >>>>>>> Does it really have 2 control interfaces that are used at the same >>>>>>> time? >>>>>>> Or is the DSI connection a passive data bus if the register control >>>>>>> happens through i2c? >>>>>> >>>>>> The interfaces may not be used at the same time, and the DSI interface >>>>>> may even be crippled, but the device is still addressable from the DSI >>>>>> host controller, if for nothing else than for routing the video stream. >>>>>> >>>>>>>>> If you need to model connections between devices that are not >>>>>>>>> reflected >>>>>>>>> through the control bus hierarchy you should really consider >>>>>>>>> using the >>>>>>>>> standardized of-graph bindings. >>>>>>>>> (Documentation/devicetree/bindings/graph.txt) >>>>>>>> >>>>>>>> The problem is that the original proposal would instantiate a dummy >>>>>>>> device, so it wouldn't be represented in DT at all. So unless you >>>>>>>> do add >>>>>>>> two logical devices to DT (one for each bus interface), you don't >>>>>>>> have >>>>>>>> anything to glue together with an OF graph. >>>>>>>> >>>>>>> I see that the having dummy device is the least desirable solution. >>>>>>> But >>>>>>> if there is only one control bus to the device I think it should be >>>>>>> one >>>>>>> device sitting beneath the control bus. >>>>>>> >>>>>>> You can then use of-graph to model the data path between the DSI >>>>>>> encoder >>>>>>> and device. >>>>>> >>>>>> But you will be needing a device below the DSI host controller to >>>>>> represent that endpoint of the connection. The DSI host controller >>>>>> itself is in no way connected to the I2C adapter. You would have to >>>>>> add some sort of quirk to the DSI controller binding to allow it to >>>>> >>>>> Thanks for the review. >>>>> >>>>> I implemented this to support ADV7533 DSI to HDMI encoder chip, which >>>>> has a DSI video bus and an i2c control bus. >>>>> >>>>> There weren't any quirks as such in the device tree when I tried to >>>>> implement this. The DT seems to manage fine without a node >>>>> corresponding to a mipi_dsi_device: >>>>> >>>>> i2c_adap@.. { >>>>> adv7533@.. { >>>>> >>>>> port { >>>>> adv_in: endpoint { >>>>> remote-endpoint = <&dsi_out>; >>>>> }; >>>>> }; >>>>> }; >>>>> }; >>>>> >>>>> dsi_host@.. { >>>>> ... >>>>> ... >>>>> >>>>> port { >>>>> dsi_out: endpoint { >>>>> remote-endpoint = <&adv_in>; >>>>> } >>>>> }; >>>>> }; >>>>> >>>>> It's the i2c driver's job to parse the graph and retrieve the >>>>> phandle to the dsi host. Using this, it can proceed with >>>>> registering itself to this host using the new dsi funcs. This >>>>> patch does the same for the adv7533 i2c driver: >>>>> >>>>> http://www.spinics.net/lists/dri-devel/msg86840.html >>>>> >>>>>> hook up with a control endpoint. And then you'll need more quirks >>>>>> to describe what kind of DSI device this is. >>>>> >>>>> Could you explain what you meant by this? I.e. describing the kind >>>>> of DSI device? >>>> >>>> Describing the number of lanes, specifying the virtual channel, mode >>>> flags, etc. You could probably set the number of lanes and mode flags >>>> via the I2C driver, but especially the virtual channel cannot be set >>>> because it isn't known to the I2C DT branch of the device. >>> >>> I agree with the VC part. It could be a DT entry within the i2c client >>> node, but that does make it seem like a quirk. The 'reg' way under the >>> DSI host is definitely better to populate the virtual channel. >>> >>>> >>>>> The dsi device created isn't really a dummy device as such. It's >>>>> dummy in the sense that there isn't a real dsi driver associated >>>>> with it. The dsi device is still used to attach to a mipi dsi host, >>>>> the way normal dsi devices do. >>>> >>>> I understand, but I don't see why it has to be instantiated by the I2C >>>> driver, that's what I find backwards. There is already a standard way >>>> for instantiating DSI devices, why not use it? >>> >>> I assumed we could either represent the device using an i2c driver, or >>> dsi, but not both. Hence, I came up with this approach. >>> >>>> >>>>>> On the other hand if you properly instantiate the DSI device you can >>>>>> easily write a driver for it, and the driver will set up the correct >>>>>> properties as implied by the compatible string. Once you have that you >>>>>> can easily hook it up to the I2C control interface in whatever way you >>>>>> like, be that an OF graph or just a simple unidirectional link by >>>>>> phandle. >>>>>> >>>>> >>>>> With the fused approach you suggested, we would have 2 drivers: one i2c >>>>> and the other dsi. The i2c client driver would be more or less minimal, >>>>> preparing an i2c_client device for the dsi driver to use. Is my >>>>> understanding correct? >>>> >>>> Correct. That's kind of similar to the way an HDMI encoder driver would >>>> use an I2C adapter to query EDID. The i2c_client device would be a means >>>> for the DSI driver to access the control interface. >>> >>> Okay. >>> >>> Although, I'm not sure about the HDMI encoder example. An HDMI >>> encoder would read off edid directly from the adapter(with an address >>> specified), it wouldn't need to create an i2c client device. Therefore, >>> an HDMI encoder wouldn't need to have a separate node for i2c in DT. >>> >>>> >>>>> We can do without dummy dsi devices with this method. But, representing >>>>> a device with 2 DT nodes seems a bit off. We'd also need to compatible >>>>> strings for the same device, one for the i2c part, and the other for >>>>> the dsi part. >>>> >>>> I agree that this somewhat stretches the capabilities of device tree. >>>> Another alternative I guess would be to not have a compatible string for >>>> the I2C device at all (that's technically not valid, I guess) because we >>>> really don't need an I2C driver for the device. What we really need is a >>>> DSI driver with a means to talk over some I2C bus with some other part >>>> of its device. >>> >>> I think what the driver should 'really' be is a bit subjective, and can >>> vary based on what the buses are used for in the device. For the Toshiba >>> chip that Jani mentioned, it tends more towards a DSI driver. Whereas, >>> for an ADV75xx chip, it's closer to an I2C driver since only I2C can be >>> used to configure the chip registers. >>> >>> Although, I agree with the point you made about the DSI bus here: >>> >>> "and the DSI interface may even be crippled, but the device is still >>> addressable from the DSI host controller, if for nothing else than for >>> routing the video stream." >>> >>> The fact that the data on the DSI bus contains routing information (i.e, >>> virtual channel number) always gives it some 'control' aspect. >>> >>>> >>>>> From an adv75xx driver perspective, it should also support the ADV7511 >>>>> chip, which is a RGB/DPI to HDMI encoder. For adv7511, we don't need a >>>>> DSI DT node. It would be a bit inconsistent to have the bindings >>>>> require both DSI and I2C nodes for one chip, and only I2C node for the >>>>> other, with both chips being supported by the same driver. >>>> >>>> Why would that be inconsistent? That sounds like the most accurate >>>> representation of the hardware to me. >>> >>> Inconsistent wasn't the right term. I should have used 'uncommon' :) >>> It's common for two chips of the same family to have a different set >>> optional properties in DT, but it's not common for two chips of the >>> same family to be represented by a different number of devices in >>> DT. >>> >>> I don't have an issue with the fused approach you suggested, as long >>> as people are okay with the DT parts. Especially the part of needing 2 >>> compatible strings in the DT. >> >> I implemented the ADV7533 driver with the approach you suggested above >> (2 drivers for 2 different components of the chip). I posted it out >> just a while back (with you in loop). >> >> The DT node with this apporach would look like this: >> >> https://github.com/boddob/linux/blob/c24cbf63a6998d00095c10122ce5e37b764c7dba/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi#L162 >> >> The main irritant with the '2 driver' approach is that we need to >> share the per-device driver data with them. For ADV7533, I've made >> the i2c driver allocate driver data (struct adv7511). >> >> The dsi driver gets the driver data in the following way: >> >> - The i2c driver sets the driver data as its client data using >> i2c_set_clientdata() >> - Parse the i2c-control phandle to get the corresponding i2c client. >> - Extract the adv7511 struct by getting i2c_get_clientdata() >> >> This way of getting the same driver data is a bit strange, but it >> works. For this, we do need to ensure that the dsi driver defers >> as long as the i2c driver isn't probed. >> >> I've now implemented both approaches for the driver. The first using >> a dummy dsi device, and this one using 2 drivers (with both being >> represented in DT). The advantage of the latter is that we don't need >> to create any dummy device stuff, the disadvantage is that DT is a bit >> uncommon. >> >> Can we now come to a conclusion on what approach is better? > > DSI by design is data bus which can be used additionally as a control bus, but > in this particular case it is purely data bus. So of-graph bindings seem to be > better choice. As already Lucas Stach said DT hierarchy should describe control > buses and of-graph bindings should describe data bus. Argument that hw has two > interfaces does not seem to be valid here - it has only one control interface. > The other one is only for data, representing every data interface using DT > hierarchy would lead to inflation of pseudo devices. > > On the other side I do not see dummy device approach ideal solution, I guess > lightweight framework providing DSI hosts detached from Linux device model could > work better here. > The only problem here is that it should coexist somehow with dsi bus used to > control devices. Anyway implementing it shouldn't be hard, question is if it > would be eventually accepted :) I guess we can live for now with dummy devs. > > Summarizing I would prefer version with dummy devices, as it seems more > compatible with DT design. Thanks for the feedback. I'll spin a newer version of the dummy dsi dev patches after waiting for some more comments. Archit > -- > To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project