From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Yan Subject: Re: [PATCH v9 9/9] drm: bridge/dw_hdmi: add rockchip rk3288 support Date: Thu, 13 Nov 2014 21:38:26 +0800 Message-ID: <5464B452.5020700@rock-chips.com> References: <1415793593-5075-1-git-send-email-andy.yan@rock-chips.com> <1415883434-3754-1-git-send-email-andy.yan@rock-chips.com> <5464AD7A.6050700@imgtec.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5464AD7A.6050700@imgtec.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: Zubair Lutfullah Kakakhel , airlied@linux.ie, heiko@sntech.de, fabio.estevam@freescale.com, rmk+kernel@arm.linux.org.uk Cc: Mark Rutland , dri-devel@lists.freedesktop.org, ykk@rock-chips.com, devel@driverdev.osuosl.org, Arnd Bergmann , linux-rockchip@lists.infradead.org, Grant Likely , Dave Airlie , jay.xu@rock-chips.com, devicetree@vger.kernel.org, Pawel Moll , Ian Campbell , Inki Dae , Rob Herring , Sean Paul , mark.yao@rock-chips.com, Josh Boyer , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, djkurtz@google.com, Philipp Zabel , Kumar Gala , Shawn Guo , Lucas Stach List-Id: devicetree@vger.kernel.org SGkgWnViYWlyTEs6CiAgIHRoYW5rcyBmb3IgeW91ciByZXZpZXcuCk9uIDIwMTTlubQxMeaciDEz 5pelIDIxOjA5LCBadWJhaXIgTHV0ZnVsbGFoIEtha2FraGVsIHdyb3RlOgo+Cj4gT24gMTMvMTEv MTQgMTI6NTcsIEFuZHkgWWFuIHdyb3RlOgo+PiByazMyODggaGRtaSBpcyBjb21wYXRpYmxlIHdp dGggRGVzaWdud2FyZSBoZG1pCj4+Cj4+IHRoaXMgcGF0Y2ggaXMgZGVwZW5kIG9uIHBhdGNoIGJ5 IE1hcmsgWWFvIEFkZCBkcm0KPj4gZHJpdmVyIGZvciBSb2NrY2hpcCBTb2NzCj4+Cj4+IHNlZSBo dHRwczovL2xrbWwub3JnL2xrbWwvMjAxNC8xMC84LzIwMQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBB bmR5IFlhbiA8YW5keS55YW5Acm9jay1jaGlwcy5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IFlha2ly IFlhbmcgPHlra0Byb2NrLWNoaXBzLmNvbT4KPj4KPj4gLS0tCj4+Cj4+IENoYW5nZXMgaW4gdjk6 Cj4+IC0gbW92ZSBzb21lIHBoeSBjb25maWd1cmF0aW9uIHRvIHBsYXRmb3JtIGRyaXZlcgo+Pgo+ PiBDaGFuZ2VzIGluIHY4Ogo+PiAtIGFkZCBzdXBwb3J0IGZvciByb2NrY2hpcCByazMyODggaGRt aQo+Pgo+PiBDaGFuZ2VzIGluIHY3OiBOb25lCj4+IENoYW5nZXMgaW4gdjY6IE5vbmUKPj4gQ2hh bmdlcyBpbiB2NTogTm9uZQo+PiBDaGFuZ2VzIGluIHY0OiBOb25lCj4+IENoYW5nZXMgaW4gdjM6 IE5vbmUKPj4gQ2hhbmdlcyBpbiB2MjogTm9uZQo+Pgo+PiAgIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2UvZHdfaGRtaS5jICAgICAgICAgICAgfCAgNDUgKysrLQo+IFRoaXMgcGF0Y2ggbG9va3MgbGlr ZSBpdCBkb2VzIGFsb3QgdG8gdGhlIGR3X2hkbWkuYyBhcyB3ZWxsIGFuZCBub3QKPiBqdXN0IGFk ZHMgc3VwcG9ydCBmb3IgcmszMjg4Li4KPgo+PiAgIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvZHdf aGRtaS5oICAgICAgICAgICAgfCAgIDMgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv S2NvbmZpZyAgICAgICAgICAgIHwgIDEwICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv TWFrZWZpbGUgICAgICAgICAgIHwgICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2R3X2hkbWktcm9ja2NoaXAuYyB8IDMyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ ICAgZHJpdmVycy9zdGFnaW5nL2lteC1kcm0vZHdfaGRtaS1pbXguYyAgICAgICB8ICAgOCArCj4+ ICAgaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaCAgICAgICAgICAgICAgICB8ICAgOCArCj4+ ICAgNyBmaWxlcyBjaGFuZ2VkLCAzOTkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4g ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9j a2NoaXAuYwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kd19oZG1p LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R3X2hkbWkuYwo+PiBpbmRleCBlZDc1MTQ3Li4x ZGQxZjBiIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R3X2hkbWkuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R3X2hkbWkuYwo+PiBAQCAtNjY4LDExICs2 NjgsMTUgQEAgc3RhdGljIGlubGluZSB2b2lkIGhkbWlfcGh5X3Rlc3RfZG91dChzdHJ1Y3QgZHdf aGRtaSAqaGRtaSwKPj4gICAKPj4gICBzdGF0aWMgYm9vbCBoZG1pX3BoeV93YWl0X2kyY19kb25l KHN0cnVjdCBkd19oZG1pICpoZG1pLCBpbnQgbXNlYykKPj4gICB7Cj4+IC0Jd2hpbGUgKChoZG1p X3JlYWRiKGhkbWksIEhETUlfSUhfSTJDTVBIWV9TVEFUMCkgJiAweDMpID09IDApIHsKPj4gKwl1 MzIgdmFsOwo+PiArCj4+ICsJd2hpbGUgKCh2YWwgPSBoZG1pX3JlYWRiKGhkbWksIEhETUlfSUhf STJDTVBIWV9TVEFUMCkgJiAweDMpID09IDApIHsKPj4gICAJCWlmIChtc2VjLS0gPT0gMCkKPj4g ICAJCQlyZXR1cm4gZmFsc2U7Cj4+ICAgCQl1ZGVsYXkoMTAwMCk7Cj4+ICAgCX0KPj4gKwloZG1p X3dyaXRlYihoZG1pLCB2YWwsIEhETUlfSUhfSTJDTVBIWV9TVEFUMCk7Cj4+ICsKPj4gICAJcmV0 dXJuIHRydWU7Cj4+ICAgfQo+PiAgIAo+IElzIHRoaXMgYSBidWcgZml4PwogICAgIEl0IHNlZW1z IGxpa2UgYSBidWcgZml4LCBJIGRvbid0IGtub3cgd2h5IGl0IHdvcmtzIHdlbGwgb24gaW14IGFu ZCAKano0NzgwCiAgICAgd2l0aG91dCB0aGlzIGZpeC4KICAgICAgSERNSV9JTl9JMkNNUEhZX1NU QVQwIGlzIGEgY2xlYXIgb24gd3JpdGUgKDEgdG8gY29ycmVzcG9uZGluZyBiaXQpIApzdGF0dXMg cmVnaXN0ZXIKICAgICAgdG8gaW5kaWNhdGUgaTJjIG9wZXJhdGlvbiBvZiB0aGUgaGRtaSBwaHko aTJjIHRyYW5zZmVyIGRvbmUgb3IgCmVycikuIEFmdGVyIG9uZSByZWdpc3RlcgogICAgICBvZiB0 aGUgcGh5IGlzIGNvbmZpZ3VyZWQgYnkgdGhlIGkyY20sIHdlIHNob3VsZCB3YWl0IGZvciB0aGUg CmkyY21waHlkb25lIGJpdCBzZXQgdG8gMSwKICAgICAgdGhhbiBjb25maWd1cmUgdGhlIG5leHQg cmVnaXN0ZXIsIHRoYW4gd2FpdCBmb3IgdGhlIGkyY21waHlkb25lIApiaXQgc2V0IHRvIDEuLi4u QnV0IHdlIHNob3VsZAogICAgICBjbGVhciB0aGUgaW5kaWNhdGUgYml0IGJ5IHdyaXRlIDEgdG8g dGhlIGNvcnJlc3BvbmRpbmcgYml0IGFmdGVyIAp0aGUgdGhlIHNldCB0byAxLCBvdGhlcndpc2Ug dGhlIGJpdAogICAgICB3aWxsIGhvbGQgb24gZm9yZXZlciwgdGhpcyB3aWxsIGdpdmUgdXMgYSB3 cm9uZyBzaWduYWwgaW4gdGhlIG5leHQgCndhaXQsIGFuZCBhcyBhIHJlc3VsdCAsIHRoZSBwaHkg cmVnaXN0ZXIgY2FuJ3QgIGJlIGNvbmZpZ3VyZWQgYXMgd2Ugd2FudC4KPgo+PiBAQCAtNzExLDYg KzcxNSwxMyBAQCBzdGF0aWMgdm9pZCBkd19oZG1pX3BoeV9lbmFibGVfdG1kcyhzdHJ1Y3QgZHdf aGRtaSAqaGRtaSwgdTggZW5hYmxlKQo+PiAgIAkJCSBIRE1JX1BIWV9DT05GMF9FTlRNRFNfTUFT Syk7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIHZvaWQgZHdfaGRtaV9waHlfZW5hYmxlX3NwYXJl KHN0cnVjdCBkd19oZG1pICpoZG1pLCB1OCBlbmFibGUpCj4+ICt7Cj4+ICsJaGRtaV9tYXNrX3dy aXRlYihoZG1pLCBlbmFibGUsIEhETUlfUEhZX0NPTkYwLAo+PiArCQkJIEhETUlfUEhZX0NPTkYw X1NQQVJFQ1RSTF9PRkZTRVQsCj4+ICsJCQkgSERNSV9QSFlfQ09ORjBfU1BBUkVDVFJMX01BU0sp Owo+PiArfQo+PiArCj4+ICAgc3RhdGljIHZvaWQgZHdfaGRtaV9waHlfZ2VuMl9wZGRxKHN0cnVj dCBkd19oZG1pICpoZG1pLCB1OCBlbmFibGUpCj4+ICAgewo+PiAgIAloZG1pX21hc2tfd3JpdGVi KGhkbWksIGVuYWJsZSwgSERNSV9QSFlfQ09ORjAsCj4+IEBAIC03NDYsNiArNzU3LDcgQEAgc3Rh dGljIGludCBoZG1pX3BoeV9jb25maWd1cmUoc3RydWN0IGR3X2hkbWkgKmhkbWksIHVuc2lnbmVk IGNoYXIgcHJlcCwKPj4gICAJdTggdmFsLCBtc2VjOwo+PiAgIAljb25zdCBzdHJ1Y3QgbXBsbF9j b25maWcgKm1wbGxfY2ZnID0gaGRtaS0+cGxhdF9kYXRhLT5tcGxsX2NmZzsKPj4gICAJY29uc3Qg c3RydWN0IGN1cnJfY3RybCAgICpjdXJyX2N0ciA9IGhkbWktPnBsYXRfZGF0YS0+Y3VyX2N0cjsK Pj4gKwljb25zdCBzdHJ1Y3Qgc3ltX3Rlcm0gKnN5bV90ZXJtID0gIGhkbWktPnBsYXRfZGF0YS0+ c3ltX3Rlcm07Cj4+ICAgCj4+ICAgCWlmIChwcmVwKQo+PiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4+ IEBAIC04MTUsMTAgKzgyNywxNyBAQCBzdGF0aWMgaW50IGhkbWlfcGh5X2NvbmZpZ3VyZShzdHJ1 Y3QgZHdfaGRtaSAqaGRtaSwgdW5zaWduZWQgY2hhciBwcmVwLAo+PiAgIAo+PiAgIAloZG1pX3Bo eV9pMmNfd3JpdGUoaGRtaSwgMHgwMDAwLCAweDEzKTsgIC8qIFBMTFBIQllDVFJMICovCj4+ICAg CWhkbWlfcGh5X2kyY193cml0ZShoZG1pLCAweDAwMDYsIDB4MTcpOwo+PiArCj4+ICsJZm9yIChp ID0gMDsgc3ltX3Rlcm1baV0ubXBpeGVsY2xvY2sgIT0gKH4wVUwpOyBpKyspCj4+ICsJCWlmICho ZG1pLT5oZG1pX2RhdGEudmlkZW9fbW9kZS5tcGl4ZWxjbG9jayA8PQo+PiArCQkgICAgc3ltX3Rl cm1baV0ubXBpeGVsY2xvY2spCj4+ICsJCQlicmVhazsKPj4gKwo+PiAgIAkvKiBSRVNJU1RBTkNF IFRFUk0gMTMzT2htIENmZyAqLwo+PiAtCWhkbWlfcGh5X2kyY193cml0ZShoZG1pLCAweDAwMDUs IDB4MTkpOyAgLyogVFhURVJNICovCj4+ICsJaGRtaV9waHlfaTJjX3dyaXRlKGhkbWksIHN5bV90 ZXJtW2ldLnRlcm0sIDB4MTkpOyAgLyogVFhURVJNICovCj4+ICAgCS8qIFBSRUVNUCBDZ2YgMC4w MCAqLwo+PiAtCWhkbWlfcGh5X2kyY193cml0ZShoZG1pLCAweDgwMGQsIDB4MDkpOyAgLyogQ0tT WU1UWENUUkwgKi8KPj4gKwloZG1pX3BoeV9pMmNfd3JpdGUoaGRtaSwgc3ltX3Rlcm1baV0uc3lt X2N0ciwgMHgwOSk7ICAvKiBDS1NZTVRYQ1RSTCAqLwo+PiArCj4gQWxsIHRoZXNlIHNlZW0gZ2Vu ZXJpYyBpbXByb3ZlbWVudHMgYW5kIG5vdCByazMyODggc3BlY2lmaWM/CiAgICBZZXMgLCAgZGlm ZmVyZW50IGJvYXJkIG5lZWRzIGRpZmZlcmVudCB0ZXJtaW5hdGlvbiB2YWxlIHRvIGdldCBiZXN0 IFNJLgogICAgRG8geW91IG1lYW4gd2Ugc2hvdWxkIHB1dCB0aGVzZSBpbiBhIHNlcGFyYXRlIHBh dGNoPwo+Cj4+ICAgCS8qIFRYL0NLIExWTCAxMCAqLwo+PiAgIAloZG1pX3BoeV9pMmNfd3JpdGUo aGRtaSwgMHgwMWFkLCAweDBFKTsgIC8qIFZMRVZDVFJMICovCj4+ICAgCS8qIFJFTU9WRSBDTEsg VEVSTSAqLwo+PiBAQCAtODM0LDYgKzg1Myw5IEBAIHN0YXRpYyBpbnQgaGRtaV9waHlfY29uZmln dXJlKHN0cnVjdCBkd19oZG1pICpoZG1pLCB1bnNpZ25lZCBjaGFyIHByZXAsCj4+ICAgCWR3X2hk bWlfcGh5X2dlbjJfdHhwd3JvbihoZG1pLCAxKTsKPj4gICAJZHdfaGRtaV9waHlfZ2VuMl9wZGRx KGhkbWksIDApOwo+PiAgIAo+PiArCWlmIChoZG1pLT5kZXZfdHlwZSA9PSBSSzMyODhfSERNSSkK Pj4gKwkJZHdfaGRtaV9waHlfZW5hYmxlX3NwYXJlKGhkbWksIDEpOwo+PiArCj4+ICAgCS8qV2Fp dCBmb3IgUEhZIFBMTCBsb2NrICovCj4+ICAgCW1zZWMgPSA1Owo+PiAgIAlkbyB7Cj4+IEBAIC0x Mzk4LDYgKzE0MjAsMjAgQEAgc3RhdGljIGludCBkd19oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+ PiAgIAo+PiArc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCj4+ICtkd19oZG1pX2Nvbm5lY3Rv cl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ICsJCQkgICAg IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+PiArewo+PiArCXN0cnVjdCBkd19oZG1p ICpoZG1pID0gY29udGFpbmVyX29mKGNvbm5lY3RvciwKPj4gKwkJCQkJICAgIHN0cnVjdCBkd19o ZG1pLCBjb25uZWN0b3IpOwo+PiArCWVudW0gZHJtX21vZGVfc3RhdHVzIG1vZGVfc3RhdHVzID0g TU9ERV9PSzsKPj4gKwo+PiArCWlmIChoZG1pLT5wbGF0X2RhdGEtPm1vZGVfdmFsaWQpCj4+ICsJ CW1vZGVfc3RhdHVzID0gaGRtaS0+cGxhdF9kYXRhLT5tb2RlX3ZhbGlkKGNvbm5lY3RvciwgbW9k ZSk7Cj4+ICsKPj4gKwlyZXR1cm4gbW9kZV9zdGF0dXM7Cj4+ICt9Cj4+ICsKPiBUaGlzIHRvbyBp cyBkaXNqb2ludCBmcm9tIHJrMzI4OCBzdXBwb3J0LgogICBSSzMyODggY2FuJ3Qgc3VwcG9ydCBh bGwgdGhlIGRpc3BsYXkgbW9kZSBmb3IgaXQgY2FuJ3QgZ2l2ZQogICBhbGwgdGhlIHByZWNpc2Ug Y2xvY2sgc29tZSBkaXNwbGF5IG1vZGUgbmVlZHMuCj4KPj4gICBzdGF0aWMgc3RydWN0IGRybV9l bmNvZGVyICpkd19oZG1pX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0 b3IKPj4gICAJCQkJCQkJICAgKmNvbm5lY3RvcikKPj4gICB7Cj4+IEBAIC0xNDIyLDYgKzE0NTgs NyBAQCBzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgZHdfaGRtaV9jb25uZWN0b3Jf ZnVuY3MgPSB7Cj4+ICAgCj4+ICAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9m dW5jcyBkd19oZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4+ICAgCS5nZXRfbW9kZXMg PSBkd19oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCj4+ICsJLm1vZGVfdmFsaWQgPSBkd19oZG1p X2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkLAo+PiAgIAkuYmVzdF9lbmNvZGVyID0gZHdfaGRtaV9jb25u ZWN0b3JfYmVzdF9lbmNvZGVyLAo+PiAgIH07Cj4+ICAgCj4+IEBAIC0xNTE0LDYgKzE1NTEsOCBA QCBzdGF0aWMgaW50IGR3X2hkbWlfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3Ry dWN0IGR3X2hkbWkgKmhkbWkpCj4+ICAgCj4+ICAgCWRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hf ZW5jb2RlcigmaGRtaS0+Y29ubmVjdG9yLCBlbmNvZGVyKTsKPj4gICAKPj4gKwlkcm1fY29ubmVj dG9yX3JlZ2lzdGVyKCZoZG1pLT5jb25uZWN0b3IpOwo+PiArCj4+ICAgCXJldHVybiAwOwo+PiAg IH0KPj4gICAKPiAuLi4KPgo+IFBsZWFzZSBzZXBhcmF0ZSBnZW5lcmljIGR3X2hkbWkuYyBpbXBy b3ZlbWVudHMgZnJvbSB0aGUgYWRkIHJrMzI4OCBzdXBwb3J0Lgo+Cj4gUmVnYXJkcwo+IFp1YmFp ckxLCj4KPgo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkZXZlbCBtYWlsaW5nIGxpc3QKZGV2ZWxAbGludXhkcml2ZXJwcm9qZWN0Lm9yZwpodHRwOi8v ZHJpdmVyZGV2LmxpbnV4ZHJpdmVycHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcml2ZXJk ZXYtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933288AbaKMNiw (ORCPT ); Thu, 13 Nov 2014 08:38:52 -0500 Received: from va-smtp01.263.net ([54.88.144.211]:52918 "EHLO va-smtp01.263.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932756AbaKMNiu (ORCPT ); Thu, 13 Nov 2014 08:38:50 -0500 X-RL-SENDER: andy.yan@rock-chips.com X-FST-TO: galak@codeaurora.org X-SENDER-IP: 121.15.173.1 X-LOGIN-NAME: andy.yan@rock-chips.com X-UNIQUE-TAG: <530def2f21456f1ec822366583c6c794> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Message-ID: <5464B452.5020700@rock-chips.com> Date: Thu, 13 Nov 2014 21:38:26 +0800 From: Andy Yan User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Zubair Lutfullah Kakakhel , airlied@linux.ie, heiko@sntech.de, fabio.estevam@freescale.com, rmk+kernel@arm.linux.org.uk CC: Greg Kroah-Hartman , Grant Likely , Rob Herring , Philipp Zabel , Shawn Guo , Josh Boyer , Sean Paul , Inki Dae , Dave Airlie , Arnd Bergmann , Lucas Stach , djkurtz@google.com, ykk@rock-chips.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devel@driverdev.osuosl.org, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, jay.xu@rock-chips.com, Pawel Moll , mark.yao@rock-chips.com, Mark Rutland , Ian Campbell , Kumar Gala Subject: Re: [PATCH v9 9/9] drm: bridge/dw_hdmi: add rockchip rk3288 support References: <1415793593-5075-1-git-send-email-andy.yan@rock-chips.com> <1415883434-3754-1-git-send-email-andy.yan@rock-chips.com> <5464AD7A.6050700@imgtec.com> In-Reply-To: <5464AD7A.6050700@imgtec.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi ZubairLK: thanks for your review. On 2014年11月13日 21:09, Zubair Lutfullah Kakakhel wrote: > > On 13/11/14 12:57, Andy Yan wrote: >> rk3288 hdmi is compatible with Designware hdmi >> >> this patch is depend on patch by Mark Yao Add drm >> driver for Rockchip Socs >> >> see https://lkml.org/lkml/2014/10/8/201 >> >> Signed-off-by: Andy Yan >> Signed-off-by: Yakir Yang >> >> --- >> >> Changes in v9: >> - move some phy configuration to platform driver >> >> Changes in v8: >> - add support for rockchip rk3288 hdmi >> >> Changes in v7: None >> Changes in v6: None >> Changes in v5: None >> Changes in v4: None >> Changes in v3: None >> Changes in v2: None >> >> drivers/gpu/drm/bridge/dw_hdmi.c | 45 +++- > This patch looks like it does alot to the dw_hdmi.c as well and not > just adds support for rk3288.. > >> drivers/gpu/drm/bridge/dw_hdmi.h | 3 +- >> drivers/gpu/drm/rockchip/Kconfig | 10 + >> drivers/gpu/drm/rockchip/Makefile | 2 +- >> drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 328 ++++++++++++++++++++++++++++ >> drivers/staging/imx-drm/dw_hdmi-imx.c | 8 + >> include/drm/bridge/dw_hdmi.h | 8 + >> 7 files changed, 399 insertions(+), 5 deletions(-) >> create mode 100644 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c >> >> diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c >> index ed75147..1dd1f0b 100644 >> --- a/drivers/gpu/drm/bridge/dw_hdmi.c >> +++ b/drivers/gpu/drm/bridge/dw_hdmi.c >> @@ -668,11 +668,15 @@ static inline void hdmi_phy_test_dout(struct dw_hdmi *hdmi, >> >> static bool hdmi_phy_wait_i2c_done(struct dw_hdmi *hdmi, int msec) >> { >> - while ((hdmi_readb(hdmi, HDMI_IH_I2CMPHY_STAT0) & 0x3) == 0) { >> + u32 val; >> + >> + while ((val = hdmi_readb(hdmi, HDMI_IH_I2CMPHY_STAT0) & 0x3) == 0) { >> if (msec-- == 0) >> return false; >> udelay(1000); >> } >> + hdmi_writeb(hdmi, val, HDMI_IH_I2CMPHY_STAT0); >> + >> return true; >> } >> > Is this a bug fix? It seems like a bug fix, I don't know why it works well on imx and jz4780 without this fix. HDMI_IN_I2CMPHY_STAT0 is a clear on write (1 to corresponding bit) status register to indicate i2c operation of the hdmi phy(i2c transfer done or err). After one register of the phy is configured by the i2cm, we should wait for the i2cmphydone bit set to 1, than configure the next register, than wait for the i2cmphydone bit set to 1....But we should clear the indicate bit by write 1 to the corresponding bit after the the set to 1, otherwise the bit will hold on forever, this will give us a wrong signal in the next wait, and as a result , the phy register can't be configured as we want. > >> @@ -711,6 +715,13 @@ static void dw_hdmi_phy_enable_tmds(struct dw_hdmi *hdmi, u8 enable) >> HDMI_PHY_CONF0_ENTMDS_MASK); >> } >> >> +static void dw_hdmi_phy_enable_spare(struct dw_hdmi *hdmi, u8 enable) >> +{ >> + hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, >> + HDMI_PHY_CONF0_SPARECTRL_OFFSET, >> + HDMI_PHY_CONF0_SPARECTRL_MASK); >> +} >> + >> static void dw_hdmi_phy_gen2_pddq(struct dw_hdmi *hdmi, u8 enable) >> { >> hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, >> @@ -746,6 +757,7 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi, unsigned char prep, >> u8 val, msec; >> const struct mpll_config *mpll_cfg = hdmi->plat_data->mpll_cfg; >> const struct curr_ctrl *curr_ctr = hdmi->plat_data->cur_ctr; >> + const struct sym_term *sym_term = hdmi->plat_data->sym_term; >> >> if (prep) >> return -EINVAL; >> @@ -815,10 +827,17 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi, unsigned char prep, >> >> hdmi_phy_i2c_write(hdmi, 0x0000, 0x13); /* PLLPHBYCTRL */ >> hdmi_phy_i2c_write(hdmi, 0x0006, 0x17); >> + >> + for (i = 0; sym_term[i].mpixelclock != (~0UL); i++) >> + if (hdmi->hdmi_data.video_mode.mpixelclock <= >> + sym_term[i].mpixelclock) >> + break; >> + >> /* RESISTANCE TERM 133Ohm Cfg */ >> - hdmi_phy_i2c_write(hdmi, 0x0005, 0x19); /* TXTERM */ >> + hdmi_phy_i2c_write(hdmi, sym_term[i].term, 0x19); /* TXTERM */ >> /* PREEMP Cgf 0.00 */ >> - hdmi_phy_i2c_write(hdmi, 0x800d, 0x09); /* CKSYMTXCTRL */ >> + hdmi_phy_i2c_write(hdmi, sym_term[i].sym_ctr, 0x09); /* CKSYMTXCTRL */ >> + > All these seem generic improvements and not rk3288 specific? Yes , different board needs different termination vale to get best SI. Do you mean we should put these in a separate patch? > >> /* TX/CK LVL 10 */ >> hdmi_phy_i2c_write(hdmi, 0x01ad, 0x0E); /* VLEVCTRL */ >> /* REMOVE CLK TERM */ >> @@ -834,6 +853,9 @@ static int hdmi_phy_configure(struct dw_hdmi *hdmi, unsigned char prep, >> dw_hdmi_phy_gen2_txpwron(hdmi, 1); >> dw_hdmi_phy_gen2_pddq(hdmi, 0); >> >> + if (hdmi->dev_type == RK3288_HDMI) >> + dw_hdmi_phy_enable_spare(hdmi, 1); >> + >> /*Wait for PHY PLL lock */ >> msec = 5; >> do { >> @@ -1398,6 +1420,20 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector) >> return 0; >> } >> >> +static enum drm_mode_status >> +dw_hdmi_connector_mode_valid(struct drm_connector *connector, >> + struct drm_display_mode *mode) >> +{ >> + struct dw_hdmi *hdmi = container_of(connector, >> + struct dw_hdmi, connector); >> + enum drm_mode_status mode_status = MODE_OK; >> + >> + if (hdmi->plat_data->mode_valid) >> + mode_status = hdmi->plat_data->mode_valid(connector, mode); >> + >> + return mode_status; >> +} >> + > This too is disjoint from rk3288 support. RK3288 can't support all the display mode for it can't give all the precise clock some display mode needs. > >> static struct drm_encoder *dw_hdmi_connector_best_encoder(struct drm_connector >> *connector) >> { >> @@ -1422,6 +1458,7 @@ static struct drm_connector_funcs dw_hdmi_connector_funcs = { >> >> static struct drm_connector_helper_funcs dw_hdmi_connector_helper_funcs = { >> .get_modes = dw_hdmi_connector_get_modes, >> + .mode_valid = dw_hdmi_connector_mode_valid, >> .best_encoder = dw_hdmi_connector_best_encoder, >> }; >> >> @@ -1514,6 +1551,8 @@ static int dw_hdmi_register(struct drm_device *drm, struct dw_hdmi *hdmi) >> >> drm_mode_connector_attach_encoder(&hdmi->connector, encoder); >> >> + drm_connector_register(&hdmi->connector); >> + >> return 0; >> } >> > ... > > Please separate generic dw_hdmi.c improvements from the add rk3288 support. > > Regards > ZubairLK > > >