From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from perceval.ideasonboard.com ([213.167.242.64]:42540 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725855AbeLDTu2 (ORCPT ); Tue, 4 Dec 2018 14:50:28 -0500 From: Laurent Pinchart To: Geert Uytterhoeven Cc: Laurent Pinchart , DRI Development , Linux-Renesas , Kieran Bingham Subject: Re: [PATCH v2] drm: rcar-du: dw-hdmi: Reject modes with a too high clock frequency Date: Tue, 04 Dec 2018 21:50:58 +0200 Message-ID: <4643222.4hxeShCNyd@avalon> In-Reply-To: References: <20181204163640.316-1-laurent.pinchart+renesas@ideasonboard.com> <4080472.x6oRvDE9so@avalon> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-renesas-soc-owner@vger.kernel.org List-ID: Hi Geert, On Tuesday, 4 December 2018 21:45:10 EET Geert Uytterhoeven wrote: > On Tue, Dec 4, 2018 at 7:51 PM Laurent Pinchart wrote: > > On Tuesday, 4 December 2018 20:42:53 EET Geert Uytterhoeven wrote: > > > On Tue, Dec 4, 2018 at 7:12 PM Laurent Pinchart wrote: > > > > On Tuesday, 4 December 2018 19:30:25 EET Geert Uytterhoeven wrote: > > > >> On Tue, Dec 4, 2018 at 5:36 PM Laurent Pinchart wrote: > > > >>> Implement a .mode_valid() handler in the R-Car glue layer to reject > > > >>> modes with an unsupported clock frequency. > > > >>> > > > >>> Signed-off-by: Laurent Pinchart > > > >>> > > > >> > > > >> Thanks for your patch! > > > >> > > > >>> --- a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c > > > >>> +++ b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c > > > >>> @@ -35,6 +35,20 @@ static const struct rcar_hdmi_phy_params > > > >>> rcar_hdmi_phy_params[] = { > > > >>> > > > >>> { ~0UL, 0x0000, 0x0000, 0x0000 }, > > > >>> > > > >>> }; > > > >>> > > > >>> +static enum drm_mode_status > > > >>> +rcar_hdmi_mode_valid(struct drm_connector *connector, > > > >>> + const struct drm_display_mode *mode) > > > >>> +{ > > > >>> + /* > > > >>> + * The maximum supported clock frequency is 297 MHz, as > > > >>> shown > > > >>> in the PHY > > > >>> + * parameters table. > > > >>> + */ > > > >>> + if (mode->clock > 297000) > > > >>> + return MODE_CLOCK_HIGH; > > > >> > > > >> Perhaps you need a check for the lower limit (25 MHz), too? > > > > > > > > There's no lower limit implied by the rcar_hdmi_phy_params table. > > > > > > Oh, you mean the table in the driver, not a table in the Hardware User's > > > Manual? > > > > Correct, I mean the table in the driver. This patch was prompted by an > > error returned from rcar_hdmi_phy_configure() when the mode frequency was > > too high, making mode setting failed. I've thus added a .mode_valid() > > handler to ensure that invalid modes don't get exposed to upper layers, > > fixing such use cases as fbvon on a 4K monitor (where the fbcon was > > picking a mode advertised as supported by the driver while its frequency > > was too high). > > > > > That's why I couldn't find the table, but only a short notice in the > > > HDMI section of the Hardware User's Manual, stating: > > > > > > Pixel clock from 25MHz up to 297MHz > > > > Well, the IP core vendor doesn't allow us to submit patches based on the > > content of non-public documentation, so I'm afraid I won't sign such a > > patch without being given explicit permission. It's a very stupid game > > really, but I don't set the rules :-( > > https://en.wikipedia.org/wiki/HDMI claims 25 MHz is the minimum TMDS rate > for HDMI anyway. Anything below that needs to use pixel replication. > > So you can reject < 25 MHz for sure. That should then be performed in the common dw_hdmi_bridge_mode_valid() handler, in drivers/gpu/drm/bridge/synopsys/dw-hdmi.c. -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v2] drm: rcar-du: dw-hdmi: Reject modes with a too high clock frequency Date: Tue, 04 Dec 2018 21:50:58 +0200 Message-ID: <4643222.4hxeShCNyd@avalon> References: <20181204163640.316-1-laurent.pinchart+renesas@ideasonboard.com> <4080472.x6oRvDE9so@avalon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id D82226E2BD for ; Tue, 4 Dec 2018 19:50:28 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Geert Uytterhoeven Cc: Linux-Renesas , Laurent Pinchart , Kieran Bingham , DRI Development List-Id: dri-devel@lists.freedesktop.org SGkgR2VlcnQsCgpPbiBUdWVzZGF5LCA0IERlY2VtYmVyIDIwMTggMjE6NDU6MTAgRUVUIEdlZXJ0 IFV5dHRlcmhvZXZlbiB3cm90ZToKPiBPbiBUdWUsIERlYyA0LCAyMDE4IGF0IDc6NTEgUE0gTGF1 cmVudCBQaW5jaGFydCB3cm90ZToKPiA+IE9uIFR1ZXNkYXksIDQgRGVjZW1iZXIgMjAxOCAyMDo0 Mjo1MyBFRVQgR2VlcnQgVXl0dGVyaG9ldmVuIHdyb3RlOgo+ID4gPiBPbiBUdWUsIERlYyA0LCAy MDE4IGF0IDc6MTIgUE0gTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+ID4gPiBPbiBUdWVzZGF5 LCA0IERlY2VtYmVyIDIwMTggMTk6MzA6MjUgRUVUIEdlZXJ0IFV5dHRlcmhvZXZlbiB3cm90ZToK PiA+ID4gPj4gT24gVHVlLCBEZWMgNCwgMjAxOCBhdCA1OjM2IFBNIExhdXJlbnQgUGluY2hhcnQg d3JvdGU6Cj4gPiA+ID4+PiBJbXBsZW1lbnQgYSAubW9kZV92YWxpZCgpIGhhbmRsZXIgaW4gdGhl IFItQ2FyIGdsdWUgbGF5ZXIgdG8gcmVqZWN0Cj4gPiA+ID4+PiBtb2RlcyB3aXRoIGFuIHVuc3Vw cG9ydGVkIGNsb2NrIGZyZXF1ZW5jeS4KPiA+ID4gPj4+IAo+ID4gPiA+Pj4gU2lnbmVkLW9mZi1i eTogTGF1cmVudCBQaW5jaGFydAo+ID4gPiA+Pj4gPGxhdXJlbnQucGluY2hhcnQrcmVuZXNhc0Bp ZGVhc29uYm9hcmQuY29tPgo+ID4gPiA+PiAKPiA+ID4gPj4gVGhhbmtzIGZvciB5b3VyIHBhdGNo IQo+ID4gPiA+PiAKPiA+ID4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJf ZHdfaGRtaS5jCj4gPiA+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R3 X2hkbWkuYwo+ID4gPiA+Pj4gQEAgLTM1LDYgKzM1LDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cmNhcl9oZG1pX3BoeV9wYXJhbXMKPiA+ID4gPj4+IHJjYXJfaGRtaV9waHlfcGFyYW1zW10gPSB7 Cj4gPiA+ID4+PiAKPiA+ID4gPj4+ICAgICAgICAgeyB+MFVMLCAgICAgIDB4MDAwMCwgMHgwMDAw LCAweDAwMDAgfSwKPiA+ID4gPj4+ICAKPiA+ID4gPj4+ICB9Owo+ID4gPiA+Pj4gCj4gPiA+ID4+ PiArc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCj4gPiA+ID4+PiArcmNhcl9oZG1pX21vZGVf dmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gPj4+ICsgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ID4gPiA+ Pj4gK3sKPiA+ID4gPj4+ICsgICAgICAgLyoKPiA+ID4gPj4+ICsgICAgICAgICogVGhlIG1heGlt dW0gc3VwcG9ydGVkIGNsb2NrIGZyZXF1ZW5jeSBpcyAyOTcgTUh6LCBhcwo+ID4gPiA+Pj4gc2hv d24KPiA+ID4gPj4+IGluIHRoZSBQSFkKPiA+ID4gPj4+ICsgICAgICAgICogcGFyYW1ldGVycyB0 YWJsZS4KPiA+ID4gPj4+ICsgICAgICAgICovCj4gPiA+ID4+PiArICAgICAgIGlmIChtb2RlLT5j bG9jayA+IDI5NzAwMCkKPiA+ID4gPj4+ICsgICAgICAgICAgICAgICByZXR1cm4gTU9ERV9DTE9D S19ISUdIOwo+ID4gPiA+PiAKPiA+ID4gPj4gUGVyaGFwcyB5b3UgbmVlZCBhIGNoZWNrIGZvciB0 aGUgbG93ZXIgbGltaXQgKDI1IE1IeiksIHRvbz8KPiA+ID4gPiAKPiA+ID4gPiBUaGVyZSdzIG5v IGxvd2VyIGxpbWl0IGltcGxpZWQgYnkgdGhlIHJjYXJfaGRtaV9waHlfcGFyYW1zIHRhYmxlLgo+ ID4gPiAKPiA+ID4gT2gsIHlvdSBtZWFuIHRoZSB0YWJsZSBpbiB0aGUgZHJpdmVyLCBub3QgYSB0 YWJsZSBpbiB0aGUgSGFyZHdhcmUgVXNlcidzCj4gPiA+IE1hbnVhbD8KPiA+IAo+ID4gQ29ycmVj dCwgSSBtZWFuIHRoZSB0YWJsZSBpbiB0aGUgZHJpdmVyLiBUaGlzIHBhdGNoIHdhcyBwcm9tcHRl ZCBieSBhbgo+ID4gZXJyb3IgcmV0dXJuZWQgZnJvbSByY2FyX2hkbWlfcGh5X2NvbmZpZ3VyZSgp IHdoZW4gdGhlIG1vZGUgZnJlcXVlbmN5IHdhcwo+ID4gdG9vIGhpZ2gsIG1ha2luZyBtb2RlIHNl dHRpbmcgZmFpbGVkLiBJJ3ZlIHRodXMgYWRkZWQgYSAubW9kZV92YWxpZCgpCj4gPiBoYW5kbGVy IHRvIGVuc3VyZSB0aGF0IGludmFsaWQgbW9kZXMgZG9uJ3QgZ2V0IGV4cG9zZWQgdG8gdXBwZXIg bGF5ZXJzLAo+ID4gZml4aW5nIHN1Y2ggdXNlIGNhc2VzIGFzIGZidm9uIG9uIGEgNEsgbW9uaXRv ciAod2hlcmUgdGhlIGZiY29uIHdhcwo+ID4gcGlja2luZyBhIG1vZGUgYWR2ZXJ0aXNlZCBhcyBz dXBwb3J0ZWQgYnkgdGhlIGRyaXZlciB3aGlsZSBpdHMgZnJlcXVlbmN5Cj4gPiB3YXMgdG9vIGhp Z2gpLgo+ID4gCj4gPiA+IFRoYXQncyB3aHkgSSBjb3VsZG4ndCBmaW5kIHRoZSB0YWJsZSwgYnV0 IG9ubHkgYSBzaG9ydCBub3RpY2UgaW4gdGhlCj4gPiA+IEhETUkgc2VjdGlvbiBvZiB0aGUgSGFy ZHdhcmUgVXNlcidzIE1hbnVhbCwgc3RhdGluZzoKPiA+ID4gCj4gPiA+ICAgICBQaXhlbCBjbG9j ayBmcm9tIDI1TUh6IHVwIHRvIDI5N01Iego+ID4gCj4gPiBXZWxsLCB0aGUgSVAgY29yZSB2ZW5k b3IgZG9lc24ndCBhbGxvdyB1cyB0byBzdWJtaXQgcGF0Y2hlcyBiYXNlZCBvbiB0aGUKPiA+IGNv bnRlbnQgb2Ygbm9uLXB1YmxpYyBkb2N1bWVudGF0aW9uLCBzbyBJJ20gYWZyYWlkIEkgd29uJ3Qg c2lnbiBzdWNoIGEKPiA+IHBhdGNoIHdpdGhvdXQgYmVpbmcgZ2l2ZW4gZXhwbGljaXQgcGVybWlz c2lvbi4gSXQncyBhIHZlcnkgc3R1cGlkIGdhbWUKPiA+IHJlYWxseSwgYnV0IEkgZG9uJ3Qgc2V0 IHRoZSBydWxlcyA6LSgKPiAKPiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IRE1JIGNs YWltcyAyNSBNSHogaXMgIHRoZSBtaW5pbXVtIFRNRFMgcmF0ZQo+IGZvciBIRE1JIGFueXdheS4g QW55dGhpbmcgYmVsb3cgdGhhdCBuZWVkcyB0byB1c2UgcGl4ZWwgcmVwbGljYXRpb24uCj4gCj4g U28geW91IGNhbiByZWplY3QgPCAyNSBNSHogZm9yIHN1cmUuCgpUaGF0IHNob3VsZCB0aGVuIGJl IHBlcmZvcm1lZCBpbiB0aGUgY29tbW9uIGR3X2hkbWlfYnJpZGdlX21vZGVfdmFsaWQoKSAKaGFu ZGxlciwgaW4gZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMuCgoKLS0g ClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=