Re: [PATCH] drm/exynos: fimd: harden fimd_calc_clkdiv()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tobias,

On 05/05/2016 06:23 PM, Tobias Jakobi wrote:
> Don't use the vrefresh field of the DRM mode since this
> one is supposed to only be used for debug purpose.
> Instead use the clock field which should also provide
> much more precise information.
>
> Also sanitize the case in which the clock value
> should be zero. We then just default to the maximum
> clock divisor.
>
> Signed-off-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>

Reviewed-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
--
Regards
Andrzej
> ---
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> index 57020f9..9d4cae4 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> @@ -367,9 +367,16 @@ static void fimd_clear_channels(struct exynos_drm_crtc *crtc)
>  static u32 fimd_calc_clkdiv(struct fimd_context *ctx,
>  		const struct drm_display_mode *mode)
>  {
> -	unsigned long ideal_clk = mode->htotal * mode->vtotal * mode->vrefresh;
> +	unsigned long ideal_clk;
>  	u32 clkdiv;
>  
> +	if (mode->clock == 0) {
> +		DRM_ERROR("Mode has zero clock value.\n");
> +		return 0xff;
> +	}
> +
> +	ideal_clk = mode->clock * 1000;
> +
>  	if (ctx->i80_if) {
>  		/*
>  		 * The frame done interrupt should be occurred prior to the

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  Powered by Linux