drm: omapdrm: if omap_plane_atomic_update fails, disable plane
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 29 May 2015 08:06:07 +0000 (11:06 +0300)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 12 Jun 2015 19:52:51 +0000 (22:52 +0300)
omap_plane_atomic_update() calls dispc_ovl_setup(), which can fail (but
shouldn't). To make the code a bit more robust, make sure the plane gets
disabled if dispc_ovl_setup() fails, as otherwise we might get illegal
HW configuration leading to error interrupts.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
drivers/gpu/drm/omapdrm/omap_plane.c

index b13fb2f..cfa8276 100644 (file)
@@ -132,8 +132,10 @@ static void omap_plane_atomic_update(struct drm_plane *plane,
        /* and finally, update omapdss: */
        ret = dispc_ovl_setup(omap_plane->id, &info, false,
                              omap_crtc_timings(state->crtc), false);
-       if (WARN_ON(ret))
+       if (WARN_ON(ret)) {
+               dispc_ovl_enable(omap_plane->id, false);
                return;
+       }
 
        dispc_ovl_enable(omap_plane->id, true);
 }