[PATCH] drm/exynos: fimd: harden fimd_calc_clkdiv()
Andrzej Hajda
a.hajda at samsung.com
Fri May 6 05:44:17 UTC 2016
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 at math.uni-bielefeld.de>
Reviewed-by: Andrzej Hajda <a.hajda at samsung.com>
--
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
More information about the dri-devel
mailing list