drm/exynos: Add atomic modesetting support

Daniel Stone daniel at fooishbar.org
Mon May 18 13:35:22 PDT 2015


Hi,

On Monday, May 18, 2015, Gustavo Padovan <gustavo at padovan.org> wrote:

> Hi Tobias,
>
> 2015-05-15 Tobias Jakobi <tjakobi at math.uni-bielefeld.de <javascript:;>>:
> > I did another run with drm.debug=0xff and also tried to figure out where
> the
> > div-by-zero comes from.
> >
> > The only division I see is in fimd_calc_clkdiv() (which is called by
> > fimd_commit()). So it looks like 'ideal_clk' is zero when calling
> > DIV_ROUND_UP().
> >
> > 'htotal' and 'vtotal' can't be zero, since this is checked early in
> > fimd_commit(). So 'vrefresh' has to be zero. Maybe this helps?
>
> What is is the output when you run with this patch:
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> index 12ab80c..f5d215d 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> @@ -310,6 +310,8 @@ static u32 fimd_calc_clkdiv(struct fimd_context *ctx,
>         unsigned long ideal_clk = mode->htotal * mode->vtotal *
> mode->vrefresh;
>         u32 clkdiv;
>
> +       DRM_DEBUG_KMS("vrefresh %d\n", mode->vrefresh);
> +
>         if (ctx->i80_if) {
>                 /*
>                  * The frame done interrupt should be occurred prior to the
> @@ -328,6 +330,7 @@ static bool fimd_mode_fixup(struct exynos_drm_crtc
> *crtc,
>                 const struct drm_display_mode *mode,
>                 struct drm_display_mode *adjusted_mode)
>  {
> +       DRM_DEBUG_KMS("vrefresh %d\n", adjusted_mode->vrefresh);
>         if (adjusted_mode->vrefresh == 0)
>                 adjusted_mode->vrefresh = FIMD_DEFAULT_FRAMERATE;
>

vrefresh can legitimately be zero, which makes this FIMD_DEFAULT_FRAMERATE
assignment problematic rather than harmless.

If it's zero, you can find a vrefresh value with drm_mode_vrefresh, which
will calculate it for you.

Cheers,
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20150518/6b003875/attachment.html>


More information about the dri-devel mailing list