Hi,
2015-05-20 Daniel Stone daniel@fooishbar.org:
Hi,
On 20 May 2015 at 17:58, Tobias Jakobi tjakobi@math.uni-bielefeld.de wrote:
On 2015-05-20 16:33, Gustavo Padovan wrote:
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.
Signed-off-by: Gustavo Padovan gustavo.padovan@collabora.co.uk
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index 9819fa6..08f7197 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,7 @@ static bool fimd_mode_fixup(struct exynos_drm_crtc *crtc, struct drm_display_mode *adjusted_mode) { if (adjusted_mode->vrefresh == 0)
Well, I'm not completly sure how this all works, but shouldn't we check 'mode' here, and not 'adjusted_mode'?
adjusted_mode is fine; it is pre-populated with the value from mode. 'mode' itself _must not_ be modified.
Mind you, this is missing a hunk to reject entirely invalid modes, i.e.: if (adjusted_mode->vrefresh == 0) adjusted_mode->vrefresh = drm_mode_vrefresh(adjusted_mode); if (adjusted_mode->vrefresh == 0) return false;
I have sent a v2 with the proposed change. I can't really test this here as I don't have the hardware where it fails. So in v1 I was just guessing that it would fix the issue.
Gustavo