Message ID | 1432147477-12650-1-git-send-email-gustavo@padovan.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan@collabora.co.uk> > > When mode's vrefresh is zero we should ask DRM core to calculate vrefresh > for us so we can get the correct value instead of relying on fixed value > defined in a macro. But if vrefresh is still zero we should fail the > update. Even with this we still need to consider crtc->state->adjusted_mode in fimd_commit(), otherwise vrefresh computed by drm_mode_vrefresh() is never actually used. With best wishes, Tobias > Suggested-by: Daniel Stone <daniels@collabora.com> > Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> > --- > drivers/gpu/drm/exynos/exynos_drm_fimd.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c > index 9819fa6..ea7da0e 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c > @@ -42,7 +42,6 @@ > * CPU Interface. > */ > > -#define FIMD_DEFAULT_FRAMERATE 60 > #define MIN_FB_WIDTH_FOR_16WORD_BURST 128 > > /* position control register for hardware window 0, 2 ~ 4.*/ > @@ -329,7 +328,9 @@ static bool fimd_mode_fixup(struct exynos_drm_crtc *crtc, > struct drm_display_mode *adjusted_mode) > { > if (adjusted_mode->vrefresh == 0) > - adjusted_mode->vrefresh = FIMD_DEFAULT_FRAMERATE; > + adjusted_mode->vrefresh = drm_mode_vrefresh(mode); > + if (adjusted_mode->vrefresh == 0) > + return false; > > return true; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2015-05-20 Tobias Jakobi <tjakobi@math.uni-bielefeld.de>: > Gustavo Padovan wrote: > > From: Gustavo Padovan <gustavo.padovan@collabora.co.uk> > > > > When mode's vrefresh is zero we should ask DRM core to calculate vrefresh > > for us so we can get the correct value instead of relying on fixed value > > defined in a macro. But if vrefresh is still zero we should fail the > > update. > Even with this we still need to consider crtc->state->adjusted_mode in > fimd_commit(), otherwise vrefresh computed by drm_mode_vrefresh() is > never actually used. You are right, I think we should pass crtc->state->adjusted_mode to fimd_calc_clkdiv(). I'll send a v3 with this change. Gustavo -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index 9819fa6..ea7da0e 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c @@ -42,7 +42,6 @@ * CPU Interface. */ -#define FIMD_DEFAULT_FRAMERATE 60 #define MIN_FB_WIDTH_FOR_16WORD_BURST 128 /* position control register for hardware window 0, 2 ~ 4.*/ @@ -329,7 +328,9 @@ static bool fimd_mode_fixup(struct exynos_drm_crtc *crtc, struct drm_display_mode *adjusted_mode) { if (adjusted_mode->vrefresh == 0) - adjusted_mode->vrefresh = FIMD_DEFAULT_FRAMERATE; + adjusted_mode->vrefresh = drm_mode_vrefresh(mode); + if (adjusted_mode->vrefresh == 0) + return false; return true; }