Hi Laurent, On 04/12/2018 16:36, Laurent Pinchart wrote: > Implement a .mode_valid() handler in the R-Car glue layer to reject > modes with an unsupported clock frequency. Thank you, I believe my concerns were addressed; (and my misunderstandings are now understandings) > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > Changes since v1: > > - Add a comment to explain where the limit comes from > > diff --git a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c > index 75490a3e0a2a..603bb340e8cf 100644 > --- 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) It's still a bit of a shame that it's not clear that the mode->clock is expressed in KHz (unless you already know that, which I didn't) - but I'll let that slide for now. -- KB > + return MODE_CLOCK_HIGH; > + > + return MODE_OK; > +} > + > static int rcar_hdmi_phy_configure(struct dw_hdmi *hdmi, > const struct dw_hdmi_plat_data *pdata, > unsigned long mpixelclock) > @@ -59,6 +73,7 @@ static int rcar_hdmi_phy_configure(struct dw_hdmi *hdmi, > } > > static const struct dw_hdmi_plat_data rcar_dw_hdmi_plat_data = { > + .mode_valid = rcar_hdmi_mode_valid, > .configure_phy = rcar_hdmi_phy_configure, > }; > > -- Regards -- Kieran _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel