On 2015ë 04ì 02ì¼ 01:02, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan at collabora.co.uk> > > We already set each plane zpos at init, after that changes to zpos are > not expected. This patch turns zpos into a read-only property so now it is > impossible to set zpos. > > Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk> > --- > drivers/gpu/drm/exynos/exynos_drm_plane.c | 21 ++------------------- > 1 file changed, 2 insertions(+), 19 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c > b/drivers/gpu/drm/exynos/exynos_drm_plane.c > index 504bd6e..2fbac9b 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c > @@ -184,27 +184,10 @@ static void exynos_plane_destroy(struct drm_plane > *plane) > drm_plane_cleanup(plane); > } > > -static int exynos_plane_set_property(struct drm_plane *plane, > - struct drm_property *property, > - uint64_t val) > -{ > - struct drm_device *dev = plane->dev; > - struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane); > - struct exynos_drm_private *dev_priv = dev->dev_private; > - > - if (property == dev_priv->plane_zpos_property) { > - exynos_plane->zpos = val; > - return 0; > - } > - > - return -EINVAL; > -} > - > static struct drm_plane_funcs exynos_plane_funcs = { > .update_plane = exynos_update_plane, > .disable_plane = exynos_disable_plane, > .destroy = exynos_plane_destroy, > - .set_property = exynos_plane_set_property,
As I commented like below before, This patch would make the compatibility of the existing application which uses set_property ioctl to be broken. Didn't you check my comment? http://www.spinics.net/lists/dri-devel/msg78852.html To other Exynos guys, Is there no any case that the hardware overlay should be configurable? If no case, I will merge this cleanup. After that, application can never change hardware overlay to each plane. Thanks, Inki Dae > }; > > static void exynos_plane_attach_zpos_property(struct drm_plane *plane, > @@ -216,8 +199,8 @@ static void exynos_plane_attach_zpos_property(struct > drm_plane *plane, > > prop = dev_priv->plane_zpos_property; > if (!prop) { > - prop = drm_property_create_range(dev, 0, "zpos", 0, > - MAX_PLANE - 1); > + prop = drm_property_create_range(dev, DRM_MODE_PROP_IMMUTABLE, > + "zpos", 0, MAX_PLANE - 1); > if (!prop) > return; > >