summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/omapdrm
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2015-05-29 11:06:07 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2015-06-12 22:52:51 +0300
commit794a65ffba77f63ecfc7d23ca6406cc23deab202 (patch)
treeee79b06e7d5db8063c39707c13b02287d4eed1db /drivers/gpu/drm/omapdrm
parent11ffd031e3e5b9cc0232aad549bb08eb14612f43 (diff)
downloadlinux-794a65ffba77f63ecfc7d23ca6406cc23deab202.tar.xz
drm: omapdrm: if omap_plane_atomic_update fails, disable plane
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>
Diffstat (limited to 'drivers/gpu/drm/omapdrm')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_plane.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
index b13fb2fd4a9a..cfa8276c4deb 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -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);
}