Message ID | 1433408582-9828-40-git-send-email-tomi.valkeinen@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Tomi, Thank you for the patch. On Thursday 04 June 2015 12:02:56 Tomi Valkeinen wrote: > 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> > --- > drivers/gpu/drm/omapdrm/omap_plane.c | 44 +++++++++++++-------------------- > 1 file 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 = {
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 = {
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> --- drivers/gpu/drm/omapdrm/omap_plane.c | 44 ++++++++++++++---------------------- 1 file changed, 17 insertions(+), 27 deletions(-)