Without those function zpos property isn't displayed in atomic mode.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard at linaro.org>
---
 drivers/gpu/drm/sti/sti_plane.c | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/drivers/gpu/drm/sti/sti_plane.c b/drivers/gpu/drm/sti/sti_plane.c
index 2e5c751..e739c5a 100644
--- a/drivers/gpu/drm/sti/sti_plane.c
+++ b/drivers/gpu/drm/sti/sti_plane.c
@@ -69,6 +69,44 @@ static int sti_plane_set_property(struct drm_plane 
*drm_plane,
        return -EINVAL;
 }

+static int sti_plane_atomic_set_property(struct drm_plane *drm_plane,
+                                        struct drm_plane_state *state,
+                                        struct drm_property *property,
+                                        uint64_t val)
+{
+       struct drm_device *dev = drm_plane->dev;
+       struct sti_private *private = dev->dev_private;
+       struct sti_plane *plane = to_sti_plane(drm_plane);
+
+       DRM_DEBUG_DRIVER("\n");
+
+       if (property == private->plane_zorder_property) {
+               plane->zorder = val;
+               return 0;
+       }
+
+       return -EINVAL;
+}
+
+static int sti_plane_atomic_get_property(struct drm_plane *drm_plane,
+                                        const struct drm_plane_state *state,
+                                        struct drm_property *property,
+                                        uint64_t *val)
+{
+       struct drm_device *dev = drm_plane->dev;
+       struct sti_private *private = dev->dev_private;
+       struct sti_plane *plane = to_sti_plane(drm_plane);
+
+       DRM_DEBUG_DRIVER("\n");
+
+       if (property == private->plane_zorder_property) {
+               *val = plane->zorder;
+               return 0;
+       }
+
+       return -EINVAL;
+}
+
 static void sti_plane_attach_zorder_property(struct drm_plane *drm_plane)
 {
        struct drm_device *dev = drm_plane->dev;
@@ -116,4 +154,6 @@ struct drm_plane_funcs sti_plane_helpers_funcs = {
        .reset = drm_atomic_helper_plane_reset,
        .atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
        .atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
+       .atomic_set_property = sti_plane_atomic_set_property,
+       .atomic_get_property = sti_plane_atomic_get_property,
 };
-- 
1.9.1

Reply via email to