On 2015년 02월 19일 22:22, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxx> > --- > 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, It's a good idea for a hardware overlay to a plane object isn't changed by user-space. However, this patch would make the compatibility of the existing application - using set_property ioctl to change hardware overlay to particular plane - to be broken because the set_property ioctl request will always be failed without the set_property callback. So how about leaving warning message 'the hardware overlay cannot be changed to another anymore' when the set_property ioctl is requested by user-space, and returning just 0? 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; > > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel