[PATCH] drm: rcar-du: dw-hdmi: Reject modes with a too high clock frequency
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Nov 23 14:47:04 UTC 2018
Hi Kieran,
On Friday, 23 November 2018 16:43:28 EET Kieran Bingham wrote:
> On 23/11/2018 14:34, 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
> > <laurent.pinchart+renesas at ideasonboard.com>
> > ---
> >
> > drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
> > b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c index 75490a3e0a2a..8a603235f22d
> > 100644
> > --- a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
> > +++ b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
> > @@ -35,6 +35,16 @@ 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)
> > +{
> > + if (mode->clock > 297000)
>
> Is 29700 constant? Can it be determined from any other location or is it
> just a magically known platform value?
It's the last entry of the rcar_hdmi_phy_params table above. I considered
writing it
if (mode->clock >
rcar_hdmi_phy_params[ARRAY_SIZE(rcar_hdmi_phy_params)-2].mpixelclock)
but found it a but hard to parse. Do you think it would be better ?
> > + 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 +69,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,
Laurent Pinchart
More information about the dri-devel
mailing list