drm/omap: fix plane check when crtc is disabled
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 10 Jun 2016 09:50:39 +0000 (12:50 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 2 Nov 2016 08:38:28 +0000 (10:38 +0200)
I sometimes see:

[drm:drm_framebuffer_remove [drm]] *ERROR* failed to reset crtc ed2a6c00
when fb was deleted: -22

which comes from drm_framebuffer_remove() when it's disabling the crtc
with zeroed drm_mode_set.

The problem in omap_plane_atomic_check() is that it will use those
zeroed fields to verify if the setup is correct.

This patch makes omap_plane_atomic_check() return 0 if the crtc is
disabled.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_plane.c

index 0ffd5b9..7bd2418 100644 (file)
@@ -164,6 +164,9 @@ static int omap_plane_atomic_check(struct drm_plane *plane,
        if (IS_ERR(crtc_state))
                return PTR_ERR(crtc_state);
 
+       if (!crtc_state->enable)
+               return 0;
+
        if (state->crtc_x < 0 || state->crtc_y < 0)
                return -EINVAL;