drm: omapdrm: Add zpos property
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 8 May 2017 22:27:14 +0000 (01:27 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 2 Jun 2017 07:57:04 +0000 (10:57 +0300)
Create a standard zpos property for every plane as an alias to the
omapdrm-specific zorder property. Unlike the zorder property that has to
be instantiated for both planes and CRTCs due to backward compatibility,
the zpos property is only instantiated for planes. When userspace will
have switched to the zpos property the zorder property will be removed.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_drv.c
drivers/gpu/drm/omapdrm/omap_plane.c

index e2e935813cc438de3ea57f7077c64e63dcebcb68..932e96b755286ed9c0326500e136241e1d032912 100644 (file)
@@ -178,8 +178,10 @@ cleanup:
 static int omap_modeset_init_properties(struct drm_device *dev)
 {
        struct omap_drm_private *priv = dev->dev_private;
+       unsigned int num_planes = priv->dispc_ops->get_num_ovls();
 
-       priv->zorder_prop = drm_property_create_range(dev, 0, "zorder", 0, 3);
+       priv->zorder_prop = drm_property_create_range(dev, 0, "zorder", 0,
+                                                     num_planes - 1);
        if (!priv->zorder_prop)
                return -ENOMEM;
 
index 334ee431c9810299634e04089b139cd54ea20912..a55e7db7e445e151f9fbd9b71edfc6d42d9734e3 100644 (file)
@@ -291,6 +291,7 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,
                u32 possible_crtcs)
 {
        struct omap_drm_private *priv = dev->dev_private;
+       unsigned int num_planes = priv->dispc_ops->get_num_ovls();
        struct drm_plane *plane;
        struct omap_plane *omap_plane;
        enum omap_plane_id id;
@@ -324,6 +325,7 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,
        drm_plane_helper_add(plane, &omap_plane_helper_funcs);
 
        omap_plane_install_properties(plane, &plane->base);
+       drm_plane_create_zpos_property(plane, 0, 0, num_planes - 1);
 
        return plane;