diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2015-05-29 10:05:37 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2015-06-12 21:52:51 +0200 |
commit | 11ffd031e3e5b9cc0232aad549bb08eb14612f43 (patch) | |
tree | b4856435551a0fe76a5814e9a138d29fec0e96cc | |
parent | drm: omapdrm: omap_plane_setup() cannot fail, use WARN (diff) | |
download | linux-11ffd031e3e5b9cc0232aad549bb08eb14612f43.tar.xz linux-11ffd031e3e5b9cc0232aad549bb08eb14612f43.zip |
drm: omapdrm: inline omap_plane_setup into update/disable
At the moment we have omap_plane_setup() function which handles both
enabling (and configuring) and disabling the plane. With atomic
modesetting we have separate hooks for plane enable/config and disable.
This patch moves the code from omap_plane_setup() to
omap_plane_atomic_update() and omap_plane_atomic_disable().
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_plane.c | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c index a8e617f9f2af..b13fb2fd4a9a 100644 --- a/drivers/gpu/drm/omapdrm/omap_plane.c +++ b/drivers/gpu/drm/omapdrm/omap_plane.c @@ -58,7 +58,22 @@ to_omap_plane_state(struct drm_plane_state *state) return container_of(state, struct omap_plane_state, base); } -static void omap_plane_setup(struct drm_plane *plane) +static int omap_plane_prepare_fb(struct drm_plane *plane, + struct drm_framebuffer *fb, + const struct drm_plane_state *new_state) +{ + return omap_framebuffer_pin(fb); +} + +static void omap_plane_cleanup_fb(struct drm_plane *plane, + struct drm_framebuffer *fb, + const struct drm_plane_state *old_state) +{ + omap_framebuffer_unpin(fb); +} + +static void omap_plane_atomic_update(struct drm_plane *plane, + struct drm_plane_state *old_state) { struct omap_plane *omap_plane = to_omap_plane(plane); struct drm_plane_state *state = plane->state; @@ -69,11 +84,6 @@ static void omap_plane_setup(struct drm_plane *plane) DBG("%s, crtc=%p fb=%p", omap_plane->name, state->crtc, state->fb); - if (!state->crtc) { - dispc_ovl_enable(omap_plane->id, false); - return; - } - memset(&info, 0, sizeof(info)); info.rotation_type = OMAP_DSS_ROT_DMA; info.rotation = OMAP_DSS_ROT_0; @@ -128,26 +138,6 @@ static void omap_plane_setup(struct drm_plane *plane) dispc_ovl_enable(omap_plane->id, true); } -static int omap_plane_prepare_fb(struct drm_plane *plane, - struct drm_framebuffer *fb, - const struct drm_plane_state *new_state) -{ - return omap_framebuffer_pin(fb); -} - -static void omap_plane_cleanup_fb(struct drm_plane *plane, - struct drm_framebuffer *fb, - const struct drm_plane_state *old_state) -{ - omap_framebuffer_unpin(fb); -} - -static void omap_plane_atomic_update(struct drm_plane *plane, - struct drm_plane_state *old_state) -{ - omap_plane_setup(plane); -} - static void omap_plane_atomic_disable(struct drm_plane *plane, struct drm_plane_state *old_state) { @@ -158,7 +148,7 @@ static void omap_plane_atomic_disable(struct drm_plane *plane, omap_state->zorder = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : omap_plane->id; - omap_plane_setup(plane); + dispc_ovl_enable(omap_plane->id, false); } static const struct drm_plane_helper_funcs omap_plane_helper_funcs = { |