Re: [PATCH] drm/bridge: adv7511: Fix low refresh rate selection

From: Laurent Pinchart
Date: Sat May 11 2019 - 15:44:33 EST


Hi Matt,

Thank you for the patch.

On Wed, Apr 24, 2019 at 01:22:27PM +0000, Matt Redfearn wrote:
> The driver currently sets register 0xfb (Low Refresh Rate) based on the
> value of mode->vrefresh. Firstly, this field is specified to be in Hz,
> but the magic numbers used by the code are Hz * 1000. This essentially
> leads to the low refresh rate always being set to 0x01, since the
> vrefresh value will always be less than 24000. Fix the magic numbers to
> be in Hz.
> Secondly, according to the comment in drm_modes.h, the field is not
> supposed to be used in a functional way anyway. Instead, use the helper
> function drm_mode_vrefresh().
>
> Fixes: 9c8af882bf12 ("drm: Add adv7511 encoder driver")
> Signed-off-by: Matt Redfearn <matt.redfearn@xxxxxxxxxx>

Wow, a 4.5 year old bug fix, nice :-)

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> ---
>
> drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> index 85c2d407a52..e7ddd3e3db9 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> @@ -747,11 +747,11 @@ static void adv7511_mode_set(struct adv7511 *adv7511,
> vsync_polarity = 1;
> }
>
> - if (mode->vrefresh <= 24000)
> + if (drm_mode_vrefresh(mode) <= 24)
> low_refresh_rate = ADV7511_LOW_REFRESH_RATE_24HZ;
> - else if (mode->vrefresh <= 25000)
> + else if (drm_mode_vrefresh(mode) <= 25)
> low_refresh_rate = ADV7511_LOW_REFRESH_RATE_25HZ;
> - else if (mode->vrefresh <= 30000)
> + else if (drm_mode_vrefresh(mode) <= 30)
> low_refresh_rate = ADV7511_LOW_REFRESH_RATE_30HZ;
> else
> low_refresh_rate = ADV7511_LOW_REFRESH_RATE_NONE;

--
Regards,

Laurent Pinchart