All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] acquire ctx for everyone!
@ 2017-07-25  8:01 Daniel Vetter
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
                   ` (9 more replies)
  0 siblings, 10 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter, DRI Development

Hi all,

This is the final bits of my cleanup work to get rid of the implicit acquire
context for atomic drivers. This handles the property stuff by essentially just
ripping it all out, after 20+ drivers I don't see any need for a driver to
overwrite anything here. Except omapdrm, and that is handled within the existing
framework already.

Besides removing a pile of code another upshot of this work is that a
set_property call for atomic driver now only takes the locks it needs, the same
way like the atomic ioctl.

Leftover bits (I should probably put them into a todo.rst entry):
- Convert vmwgfx over to the fbdev helpers since their current hand-rolled ones
  get this all wrong.

- Add an explicit acquire_ctx to drm_modeset_(un)lock_all and nuke the
  GFP_ATOMIC allocation.

- Also clean up the get_property paths a bit more, would be nice if we wouldn't
  need to have to take all the locks for atomic drivers.

But already with this we're guaranteed that all core and helper paths pass
around the acquire_ctx correctly, which means drivers can now start to use their
own internal drm_modeset_locks for private data structures.

Cheers, Daniel

Daniel Vetter (8):
  drm/omap: Simplify the rotation-on-crtc hack
  drm: Don't update property values for atomic drivers
  drm: Handle properties in the core for atomic drivers
  drm: Nuke drm_atomic_helper_crtc_set_property
  drm: Nuke drm_atomic_helper_plane_set_property
  drm: Nuke drm_atomic_helper_connector_set_property
  drm: Nuke drm_atomic_helper_connector_dpms
  drm: Nuke drm_atomic_legacy_backoff

 drivers/gpu/drm/arm/malidp_planes.c                |   1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c     |   1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c    |   1 -
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |   1 -
 drivers/gpu/drm/bridge/analogix-anx78xx.c          |   1 -
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |   1 -
 drivers/gpu/drm/bridge/dumb-vga-dac.c              |   1 -
 .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |   1 -
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |   1 -
 drivers/gpu/drm/bridge/panel.c                     |   1 -
 drivers/gpu/drm/bridge/parade-ps8622.c             |   1 -
 drivers/gpu/drm/bridge/sii902x.c                   |   1 -
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |   1 -
 drivers/gpu/drm/bridge/tc358767.c                  |   1 -
 drivers/gpu/drm/bridge/ti-tfp410.c                 |   1 -
 drivers/gpu/drm/drm_atomic.c                       |  98 ++++----
 drivers/gpu/drm/drm_atomic_helper.c                | 248 ---------------------
 drivers/gpu/drm/drm_connector.c                    |   9 +-
 drivers/gpu/drm/drm_crtc.c                         |   2 +-
 drivers/gpu/drm/drm_crtc_helper.c                  |   3 +-
 drivers/gpu/drm/drm_crtc_internal.h                |   7 +
 drivers/gpu/drm/drm_mode_object.c                  | 159 +++++++++----
 drivers/gpu/drm/drm_plane.c                        |   2 +-
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |   1 -
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |   1 -
 drivers/gpu/drm/exynos/exynos_drm_plane.c          |   1 -
 drivers/gpu/drm/exynos/exynos_drm_vidi.c           |   1 -
 drivers/gpu/drm/exynos/exynos_hdmi.c               |   1 -
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |   1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c     |   1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |   1 -
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c    |   2 -
 drivers/gpu/drm/i2c/tda998x_drv.c                  |  10 +-
 drivers/gpu/drm/i915/intel_crt.c                   |   2 -
 drivers/gpu/drm/i915/intel_display.c               |   3 -
 drivers/gpu/drm/i915/intel_dp.c                    |   2 -
 drivers/gpu/drm/i915/intel_dp_mst.c                |   2 -
 drivers/gpu/drm/i915/intel_dsi.c                   |   2 -
 drivers/gpu/drm/i915/intel_dvo.c                   |   2 -
 drivers/gpu/drm/i915/intel_hdmi.c                  |   2 -
 drivers/gpu/drm/i915/intel_lvds.c                  |   2 -
 drivers/gpu/drm/i915/intel_sdvo.c                  |   2 -
 drivers/gpu/drm/i915/intel_tv.c                    |   2 -
 drivers/gpu/drm/imx/imx-ldb.c                      |   1 -
 drivers/gpu/drm/imx/imx-tve.c                      |   1 -
 drivers/gpu/drm/imx/parallel-display.c             |   1 -
 drivers/gpu/drm/mediatek/mtk_dsi.c                 |   1 -
 drivers/gpu/drm/mediatek/mtk_hdmi.c                |   1 -
 drivers/gpu/drm/meson/meson_venc_cvbs.c            |   1 -
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |   1 -
 drivers/gpu/drm/msm/edp/edp_connector.c            |   1 -
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |   1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c           |   1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |   1 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c           |   2 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c          |   2 -
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |   1 -
 drivers/gpu/drm/nouveau/nouveau_connector.c        |  15 +-
 drivers/gpu/drm/nouveau/nv50_display.c             |   4 -
 drivers/gpu/drm/omapdrm/omap_connector.c           |   1 -
 drivers/gpu/drm/omapdrm/omap_crtc.c                |  65 +++---
 drivers/gpu/drm/omapdrm/omap_plane.c               |   1 -
 drivers/gpu/drm/pl111/pl111_connector.c            |   1 -
 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |   1 -
 drivers/gpu/drm/rcar-du/rcar_du_plane.c            |   1 -
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c              |   1 -
 drivers/gpu/drm/rockchip/cdn-dp-core.c             |   1 -
 drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |   1 -
 drivers/gpu/drm/rockchip/inno_hdmi.c               |   1 -
 drivers/gpu/drm/sti/sti_cursor.c                   |   1 -
 drivers/gpu/drm/sti/sti_dvo.c                      |   1 -
 drivers/gpu/drm/sti/sti_gdp.c                      |   1 -
 drivers/gpu/drm/sti/sti_hda.c                      |   1 -
 drivers/gpu/drm/sti/sti_hdmi.c                     |   2 -
 drivers/gpu/drm/sti/sti_hqvdp.c                    |   1 -
 drivers/gpu/drm/stm/ltdc.c                         |   1 -
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |   1 -
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |   1 -
 drivers/gpu/drm/sun4i/sun4i_tv.c                   |   1 -
 drivers/gpu/drm/tegra/dsi.c                        |   1 -
 drivers/gpu/drm/tegra/hdmi.c                       |   1 -
 drivers/gpu/drm/tegra/rgb.c                        |   1 -
 drivers/gpu/drm/tegra/sor.c                        |   1 -
 drivers/gpu/drm/tilcdc/tilcdc_panel.c              |   1 -
 drivers/gpu/drm/tilcdc/tilcdc_plane.c              |   1 -
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |   1 -
 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |   1 -
 drivers/gpu/drm/vc4/vc4_hdmi.c                     |   1 -
 drivers/gpu/drm/vc4/vc4_vec.c                      |   2 -
 drivers/gpu/drm/virtio/virtgpu_display.c           |   1 -
 drivers/gpu/drm/zte/zx_hdmi.c                      |   1 -
 drivers/gpu/drm/zte/zx_tvenc.c                     |   1 -
 drivers/gpu/drm/zte/zx_vga.c                       |   1 -
 include/drm/drm_atomic.h                           |   8 -
 include/drm/drm_atomic_helper.h                    |  11 -
 include/drm/drm_connector.h                        |  10 +-
 include/drm/drm_crtc.h                             |   6 +-
 include/drm/drm_plane.h                            |   6 +-
 98 files changed, 224 insertions(+), 536 deletions(-)

-- 
2.13.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
@ 2017-07-25  8:01 ` Daniel Vetter
  2017-07-25  8:47   ` Maarten Lankhorst
                     ` (3 more replies)
  2017-07-25  8:01 ` [PATCH 2/8] drm: Don't update property values for atomic drivers Daniel Vetter
                   ` (8 subsequent siblings)
  9 siblings, 4 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development
  Cc: Daniel Vetter, Tomi Valkeinen, Laurent Pinchart, DRI Development,
	Daniel Vetter

I want/need to rework the core property handling, and this hack is
getting in the way. But since it's a non-standard propety only used by
legacy userspace we know that this will only every be called from
ioctl code. And never on some other free-standing state struct, where
this old hack wouldn't work either.

v2: don't forget zorder and get_property!

Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/omapdrm/omap_crtc.c | 64 ++++++++++++++++---------------------
 1 file changed, 28 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 14e8a7738b06..efa525442e7d 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -498,39 +498,30 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
-static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
-	struct drm_property *property)
-{
-	struct drm_device *dev = crtc->dev;
-	struct omap_drm_private *priv = dev->dev_private;
-
-	return property == priv->zorder_prop ||
-		property == crtc->primary->rotation_property;
-}
-
 static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
 					 struct drm_crtc_state *state,
 					 struct drm_property *property,
 					 uint64_t val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		struct drm_plane_state *plane_state;
-		struct drm_plane *plane = crtc->primary;
-
-		/*
-		 * Delegate property set to the primary plane. Get the plane
-		 * state and set the property directly.
-		 */
-
-		plane_state = drm_atomic_get_plane_state(state->state, plane);
-		if (IS_ERR(plane_state))
-			return PTR_ERR(plane_state);
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct drm_plane_state *plane_state;
 
-		return drm_atomic_plane_set_property(plane, plane_state,
-				property, val);
-	}
+	/*
+	 * Delegate property set to the primary plane. Get the plane
+	 * state and set the property directly.
+	 */
+	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
+	if (IS_ERR(plane_state))
+		return PTR_ERR(plane_state);
+
+	if (property == crtc->primary->rotation_property)
+		plane_state->rotation = val;
+	else if (property == priv->zorder_prop)
+		plane_state->zpos = val;
+	else
+		return -EINVAL;
 
-	return -EINVAL;
+	return 0;
 }
 
 static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
@@ -538,16 +529,17 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
 					 struct drm_property *property,
 					 uint64_t *val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		/*
-		 * Delegate property get to the primary plane. The
-		 * drm_atomic_plane_get_property() function isn't exported, but
-		 * can be called through drm_object_property_get_value() as that
-		 * will call drm_atomic_get_property() for atomic drivers.
-		 */
-		return drm_object_property_get_value(&crtc->primary->base,
-				property, val);
-	}
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+
+	/*
+	 * Remap to the plane rotation/zorder property. We can peek at the plane
+	 * state directly since holding the crtc locks gives you a read-lock on
+	 * the plane state.
+	 */
+	if (property == crtc->primary->rotation_property)
+		return crtc->primary->state->rotation;
+	else if (property == priv->zorder_prop)
+		return crtc->primary->state->zpos;
 
 	return -EINVAL;
 }
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 2/8] drm: Don't update property values for atomic drivers
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
@ 2017-07-25  8:01 ` Daniel Vetter
  2017-07-25  8:32   ` Maarten Lankhorst
                     ` (2 more replies)
  2017-07-25  8:01 ` [PATCH 3/8] drm: Handle properties in the core " Daniel Vetter
                   ` (7 subsequent siblings)
  9 siblings, 3 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter, DRI Development, Daniel Vetter

Atomic drivers only use the property value store for immutable (i.e.
can't be set by userspace, but the kernel can still adjust it)
properties. The only tricky part is the removal of the update in
drm_atomic_helper_update_legacy_modeset_state().

This was added in

commit 8c10342cb48f3140d9abeadcfd2fa6625d447282 (tag: topic/drm-misc-2015-07-28)
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Mon Jul 27 13:24:29 2015 +0200

    drm/atomic: Update legacy DPMS state during modesets, v3.

by copying it from the i915 code, where it was originally added in

commit 68d3472047a572936551f8ff0b6f4016c5a1fdef
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Thu Sep 6 22:08:35 2012 +0200

    drm/i915: update dpms property in set_mode

for the legacy modeset code. The reason we needed this hack was that
i915 didn't yet set DRIVER_ATOMIC, and we checked for that instead of
the newer-ish drm_drv_uses_atomic_modeset(), which avoids such
troubles. With the correct feature checks this isn't needed anymore at
all.

Also make sure that drivers don't accidentally get this wrong by
making the exported version of drm_object_property_get_value() only
work for legacy drivers. Only gma500 uses it anyway.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_atomic_helper.c |  4 ---
 drivers/gpu/drm/drm_connector.c     |  3 +--
 drivers/gpu/drm/drm_crtc.c          |  2 +-
 drivers/gpu/drm/drm_mode_object.c   | 49 +++++++++++++++++++++++--------------
 drivers/gpu/drm/drm_plane.c         |  2 +-
 5 files changed, 33 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 7582bbc5decc..4a960c741e35 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -921,16 +921,12 @@ drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
 		crtc = new_conn_state->crtc;
 		if ((!crtc && old_conn_state->crtc) ||
 		    (crtc && drm_atomic_crtc_needs_modeset(crtc->state))) {
-			struct drm_property *dpms_prop =
-				dev->mode_config.dpms_property;
 			int mode = DRM_MODE_DPMS_OFF;
 
 			if (crtc && crtc->state->active)
 				mode = DRM_MODE_DPMS_ON;
 
 			connector->dpms = mode;
-			drm_object_property_set_value(&connector->base,
-						      dpms_prop, mode);
 		}
 	}
 
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 8072e6e4c62c..349104eadefe 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1225,8 +1225,7 @@ int drm_mode_connector_set_obj_prop(struct drm_mode_object *obj,
 	} else if (connector->funcs->set_property)
 		ret = connector->funcs->set_property(connector, property, value);
 
-	/* store the property value if successful */
-	if (!ret)
+	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
 		drm_object_property_set_value(&connector->base, property, value);
 	return ret;
 }
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 5af25ce5bf7c..7d4fcdd34342 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -736,7 +736,7 @@ int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj,
 
 	if (crtc->funcs->set_property)
 		ret = crtc->funcs->set_property(crtc, property, value);
-	if (!ret)
+	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
 		drm_object_property_set_value(obj, property, value);
 
 	return ret;
diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
index da9a9adbcc98..92743a796bf0 100644
--- a/drivers/gpu/drm/drm_mode_object.c
+++ b/drivers/gpu/drm/drm_mode_object.c
@@ -233,6 +233,9 @@ int drm_object_property_set_value(struct drm_mode_object *obj,
 {
 	int i;
 
+	WARN_ON(drm_drv_uses_atomic_modeset(property->dev) &&
+		!(property->flags & DRM_MODE_PROP_IMMUTABLE));
+
 	for (i = 0; i < obj->properties->count; i++) {
 		if (obj->properties->properties[i] == property) {
 			obj->properties->values[i] = val;
@@ -244,24 +247,7 @@ int drm_object_property_set_value(struct drm_mode_object *obj,
 }
 EXPORT_SYMBOL(drm_object_property_set_value);
 
-/**
- * drm_object_property_get_value - retrieve the value of a property
- * @obj: drm mode object to get property value from
- * @property: property to retrieve
- * @val: storage for the property value
- *
- * This function retrieves the softare state of the given property for the given
- * property. Since there is no driver callback to retrieve the current property
- * value this might be out of sync with the hardware, depending upon the driver
- * and property.
- *
- * Atomic drivers should never call this function directly, the core will read
- * out property values through the various ->atomic_get_property callbacks.
- *
- * Returns:
- * Zero on success, error code on failure.
- */
-int drm_object_property_get_value(struct drm_mode_object *obj,
+int __drm_object_property_get_value(struct drm_mode_object *obj,
 				  struct drm_property *property, uint64_t *val)
 {
 	int i;
@@ -284,6 +270,31 @@ int drm_object_property_get_value(struct drm_mode_object *obj,
 
 	return -EINVAL;
 }
+
+/**
+ * drm_object_property_get_value - retrieve the value of a property
+ * @obj: drm mode object to get property value from
+ * @property: property to retrieve
+ * @val: storage for the property value
+ *
+ * This function retrieves the softare state of the given property for the given
+ * property. Since there is no driver callback to retrieve the current property
+ * value this might be out of sync with the hardware, depending upon the driver
+ * and property.
+ *
+ * Atomic drivers should never call this function directly, the core will read
+ * out property values through the various ->atomic_get_property callbacks.
+ *
+ * Returns:
+ * Zero on success, error code on failure.
+ */
+int drm_object_property_get_value(struct drm_mode_object *obj,
+				  struct drm_property *property, uint64_t *val)
+{
+	WARN_ON(drm_drv_uses_atomic_modeset(property->dev));
+
+	return __drm_object_property_get_value(obj, property, val);
+}
 EXPORT_SYMBOL(drm_object_property_get_value);
 
 /* helper for getconnector and getproperties ioctls */
@@ -302,7 +313,7 @@ int drm_mode_object_get_properties(struct drm_mode_object *obj, bool atomic,
 			continue;
 
 		if (*arg_count_props > count) {
-			ret = drm_object_property_get_value(obj, prop, &val);
+			ret = __drm_object_property_get_value(obj, prop, &val);
 			if (ret)
 				return ret;
 
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index 5dc8c4350602..b4ffd0455200 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -330,7 +330,7 @@ int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
 
 	if (plane->funcs->set_property)
 		ret = plane->funcs->set_property(plane, property, value);
-	if (!ret)
+	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
 		drm_object_property_set_value(obj, property, value);
 
 	return ret;
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 3/8] drm: Handle properties in the core for atomic drivers
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
  2017-07-25  8:01 ` [PATCH 2/8] drm: Don't update property values for atomic drivers Daniel Vetter
@ 2017-07-25  8:01 ` Daniel Vetter
  2017-07-25  9:36   ` Archit Taneja
  2017-07-25 12:02   ` [PATCH] " Daniel Vetter
  2017-07-25  8:01 ` [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property Daniel Vetter
                   ` (6 subsequent siblings)
  9 siblings, 2 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter, DRI Development, Daniel Vetter

The reason behind the original indirection through the helper
functions was to allow existing drivers to overwrite how they handle
properties. For example when a vendor-specific userspace had
expectations that didn't match atomic. That seemed likely, since
atomic is standardizing a _lot_ more of the behaviour of a kms driver.

But 20 drivers later there's no such need at all. Worse, this forces
all drivers to hook up the default behaviour, breaking userspace if
they forget to do that. And it forces us to export a bunch of core
function just for those helpers.

And finally, these helpers are the last places using
drm_atomic_legacy_backoff() and the implicit acquire_ctx.

This patch here just implements the new behaviour and updates the
docs. Follow-up patches will garbage-collect all the dead code.

v2: Fixup docs even better!

v3: Make it actually work ...

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_atomic.c        |  60 ++++++++++++++++++--
 drivers/gpu/drm/drm_connector.c     |   6 +-
 drivers/gpu/drm/drm_crtc_helper.c   |   3 +-
 drivers/gpu/drm/drm_crtc_internal.h |   7 +++
 drivers/gpu/drm/drm_mode_object.c   | 110 +++++++++++++++++++++++++++---------
 include/drm/drm_connector.h         |  10 ++--
 include/drm/drm_crtc.h              |   6 +-
 include/drm/drm_plane.h             |   6 +-
 8 files changed, 158 insertions(+), 50 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 01192dd3ed79..0fd14aff7add 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1864,9 +1864,60 @@ static struct drm_pending_vblank_event *create_vblank_event(
 	return e;
 }
 
-static int atomic_set_prop(struct drm_atomic_state *state,
-		struct drm_mode_object *obj, struct drm_property *prop,
-		uint64_t prop_value)
+int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
+				     struct drm_connector *connector,
+				     int mode)
+{
+	struct drm_connector *tmp_connector;
+	struct drm_connector_state *new_conn_state;
+	struct drm_crtc *crtc;
+	struct drm_crtc_state *crtc_state;
+	int i, ret, old_mode = connector->dpms;
+	bool active = false;
+
+	ret = drm_modeset_lock(&state->dev->mode_config.connection_mutex,
+			       state->acquire_ctx);
+	if (ret)
+		return ret;
+
+	if (mode != DRM_MODE_DPMS_ON)
+		mode = DRM_MODE_DPMS_OFF;
+	connector->dpms = mode;
+
+	crtc = connector->state->crtc;
+	if (!crtc)
+		goto out;
+	ret = drm_atomic_add_affected_connectors(state, crtc);
+	if (ret)
+		goto out;
+
+	crtc_state = drm_atomic_get_crtc_state(state, crtc);
+	if (IS_ERR(crtc_state)) {
+		ret = PTR_ERR(crtc_state);
+		goto out;
+	}
+
+	for_each_new_connector_in_state(state, tmp_connector, new_conn_state, i) {
+		if (new_conn_state->crtc != crtc)
+			continue;
+		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
+			active = true;
+			break;
+		}
+	}
+
+	crtc_state->active = active;
+	ret = drm_atomic_commit(state);
+out:
+	if (ret != 0)
+		connector->dpms = old_mode;
+	return ret;
+}
+
+int drm_atomic_set_property(struct drm_atomic_state *state,
+			    struct drm_mode_object *obj,
+			    struct drm_property *prop,
+			    uint64_t prop_value)
 {
 	struct drm_mode_object *ref;
 	int ret;
@@ -2286,7 +2337,8 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
 				goto out;
 			}
 
-			ret = atomic_set_prop(state, obj, prop, prop_value);
+			ret = drm_atomic_set_property(state, obj, prop,
+						      prop_value);
 			if (ret) {
 				drm_mode_object_put(obj);
 				goto out;
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 349104eadefe..12371f184019 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -717,9 +717,9 @@ DRM_ENUM_NAME_FN(drm_get_tv_subconnector_name,
  * 	drivers, it remaps to controlling the "ACTIVE" property on the CRTC the
  * 	connector is linked to. Drivers should never set this property directly,
  * 	it is handled by the DRM core by calling the &drm_connector_funcs.dpms
- * 	callback. Atomic drivers should implement this hook using
- * 	drm_atomic_helper_connector_dpms(). This is the only property standard
- * 	connector property that userspace can change.
+ * 	callback. For atomic drivers the remapping to the "ACTIVE" property is
+ * 	implemented in the DRM core.  This is the only standard connector
+ * 	property that userspace can change.
  * PATH:
  * 	Connector path property to identify how this sink is physically
  * 	connected. Used by DP MST. This should be set by calling
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 4afdf7902eda..eab36a460638 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -863,8 +863,7 @@ static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
  * provided by the driver.
  *
  * This function is deprecated.  New drivers must implement atomic modeset
- * support, for which this function is unsuitable. Instead drivers should use
- * drm_atomic_helper_connector_dpms().
+ * support, where DPMS is handled in the DRM core.
  *
  * Returns:
  * Always returns 0.
diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h
index d077c5490041..a43582076b20 100644
--- a/drivers/gpu/drm/drm_crtc_internal.h
+++ b/drivers/gpu/drm/drm_crtc_internal.h
@@ -178,6 +178,13 @@ struct drm_minor;
 int drm_atomic_debugfs_init(struct drm_minor *minor);
 #endif
 
+int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
+				     struct drm_connector *connector,
+				     int mode);
+int drm_atomic_set_property(struct drm_atomic_state *state,
+			    struct drm_mode_object *obj,
+			    struct drm_property *prop,
+			    uint64_t prop_value);
 int drm_atomic_get_property(struct drm_mode_object *obj,
 			    struct drm_property *property, uint64_t *val);
 int drm_mode_atomic_ioctl(struct drm_device *dev,
diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
index 92743a796bf0..1055533792f3 100644
--- a/drivers/gpu/drm/drm_mode_object.c
+++ b/drivers/gpu/drm/drm_mode_object.c
@@ -392,6 +392,83 @@ struct drm_property *drm_mode_obj_find_prop_id(struct drm_mode_object *obj,
 	return NULL;
 }
 
+static int set_property_legacy(struct drm_mode_object *obj,
+			       struct drm_property *prop,
+			       uint64_t prop_value)
+{
+	struct drm_device *dev = prop->dev;
+	struct drm_mode_object *ref;
+	int ret = -EINVAL;
+
+	if (!drm_property_change_valid_get(prop, prop_value, &ref))
+		return -EINVAL;
+
+	drm_modeset_lock_all(dev);
+	switch (obj->type) {
+	case DRM_MODE_OBJECT_CONNECTOR:
+		ret = drm_mode_connector_set_obj_prop(obj, prop,
+						      prop_value);
+		break;
+	case DRM_MODE_OBJECT_CRTC:
+		ret = drm_mode_crtc_set_obj_prop(obj, prop, prop_value);
+		break;
+	case DRM_MODE_OBJECT_PLANE:
+		ret = drm_mode_plane_set_obj_prop(obj_to_plane(obj),
+						  prop, prop_value);
+		break;
+	}
+	drm_property_change_valid_put(prop, ref);
+	drm_modeset_unlock_all(dev);
+
+	return ret;
+}
+
+static int set_property_atomic(struct drm_mode_object *obj,
+			       struct drm_property *prop,
+			       uint64_t prop_value)
+{
+	struct drm_device *dev = prop->dev;
+	struct drm_atomic_state *state;
+	struct drm_modeset_acquire_ctx ctx;
+	int ret;
+
+	drm_modeset_acquire_init(&ctx, 0);
+
+	state = drm_atomic_state_alloc(dev);
+	if (!state)
+		return -ENOMEM;
+	state->acquire_ctx = &ctx;
+retry:
+	if (prop == state->dev->mode_config.dpms_property) {
+		if (obj->type != DRM_MODE_OBJECT_CONNECTOR) {
+			ret = -EINVAL;
+			goto out;
+		}
+
+		ret = drm_atomic_connector_commit_dpms(state,
+						       obj_to_connector(obj),
+						       prop_value);
+	} else {
+		ret = drm_atomic_set_property(state, obj, prop, prop_value);
+		if (ret)
+			goto out;
+		ret = drm_atomic_commit(state);
+	}
+out:
+	if (ret == -EDEADLK) {
+		drm_atomic_state_clear(state);
+		drm_modeset_backoff(&ctx);
+		goto retry;
+	}
+
+	drm_atomic_state_put(state);
+
+	drm_modeset_drop_locks(&ctx);
+	drm_modeset_acquire_fini(&ctx);
+
+	return ret;
+}
+
 int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
 				    struct drm_file *file_priv)
 {
@@ -399,18 +476,13 @@ int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
 	struct drm_mode_object *arg_obj;
 	struct drm_property *property;
 	int ret = -EINVAL;
-	struct drm_mode_object *ref;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
 
-	drm_modeset_lock_all(dev);
-
 	arg_obj = drm_mode_object_find(dev, arg->obj_id, arg->obj_type);
-	if (!arg_obj) {
-		ret = -ENOENT;
-		goto out;
-	}
+	if (!arg_obj)
+		return -ENOENT;
 
 	if (!arg_obj->properties)
 		goto out_unref;
@@ -419,28 +491,12 @@ int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
 	if (!property)
 		goto out_unref;
 
-	if (!drm_property_change_valid_get(property, arg->value, &ref))
-		goto out_unref;
-
-	switch (arg_obj->type) {
-	case DRM_MODE_OBJECT_CONNECTOR:
-		ret = drm_mode_connector_set_obj_prop(arg_obj, property,
-						      arg->value);
-		break;
-	case DRM_MODE_OBJECT_CRTC:
-		ret = drm_mode_crtc_set_obj_prop(arg_obj, property, arg->value);
-		break;
-	case DRM_MODE_OBJECT_PLANE:
-		ret = drm_mode_plane_set_obj_prop(obj_to_plane(arg_obj),
-						  property, arg->value);
-		break;
-	}
-
-	drm_property_change_valid_put(property, ref);
+	if (drm_drv_uses_atomic_modeset(property->dev))
+		ret = set_property_atomic(arg_obj, property, arg->value);
+	else
+		ret = set_property_legacy(arg_obj, property, arg->value);
 
 out_unref:
 	drm_mode_object_put(arg_obj);
-out:
-	drm_modeset_unlock_all(dev);
 	return ret;
 }
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 4bc088269d05..ea8da401c93c 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -382,8 +382,8 @@ struct drm_connector_funcs {
 	 * implement the 4 level DPMS support on the connector any more, but
 	 * instead only have an on/off "ACTIVE" property on the CRTC object.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_connector_dpms() to implement this hook.
+	 * This hook is not used by atomic drivers, remapping of the legacy DPMS
+	 * property is entirely handled in the DRM core.
 	 *
 	 * RETURNS:
 	 *
@@ -480,11 +480,9 @@ struct drm_connector_funcs {
 	 * This is the legacy entry point to update a property attached to the
 	 * connector.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_connector_set_property() to implement this hook.
-	 *
 	 * This callback is optional if the driver does not support any legacy
-	 * driver-private properties.
+	 * driver-private properties. For atomic drivers it is not used because
+	 * property handling is done entirely in the DRM core.
 	 *
 	 * RETURNS:
 	 *
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 3a911a64c257..9c01f94b393c 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -481,11 +481,9 @@ struct drm_crtc_funcs {
 	 * This is the legacy entry point to update a property attached to the
 	 * CRTC.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_crtc_set_property() to implement this hook.
-	 *
 	 * This callback is optional if the driver does not support any legacy
-	 * driver-private properties.
+	 * driver-private properties. For atomic drivers it is not used because
+	 * property handling is done entirely in the DRM core.
 	 *
 	 * RETURNS:
 	 *
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
index 9ab3e7044812..204c213810df 100644
--- a/include/drm/drm_plane.h
+++ b/include/drm/drm_plane.h
@@ -233,11 +233,9 @@ struct drm_plane_funcs {
 	 * This is the legacy entry point to update a property attached to the
 	 * plane.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_plane_set_property() to implement this hook.
-	 *
 	 * This callback is optional if the driver does not support any legacy
-	 * driver-private properties.
+	 * driver-private properties. For atomic drivers it is not used because
+	 * property handling is done entirely in the DRM core.
 	 *
 	 * RETURNS:
 	 *
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
                   ` (2 preceding siblings ...)
  2017-07-25  8:01 ` [PATCH 3/8] drm: Handle properties in the core " Daniel Vetter
@ 2017-07-25  8:01 ` Daniel Vetter
  2017-07-25  9:38   ` Archit Taneja
                     ` (2 more replies)
  2017-07-25  8:01   ` Daniel Vetter
                   ` (5 subsequent siblings)
  9 siblings, 3 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development
  Cc: David Airlie, Daniel Vetter, DRI Development,
	Sushmita Susheelendra, Masahiro Yamada, Daniel Vetter,
	Boris Brezillon, Archit Taneja, Laurent Pinchart, Alexey Brodkin,
	Tomi Valkeinen, Ben Skeggs, nouveau, Eric Engestrom,
	Thomas Hellstrom, Philippe Cornu, Philipp Zabel, Maxime Ripard,
	Shawn Guo

It's dead code because this is now handled in the core.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Eric Engestrom <eric@engestrom.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Sushmita Susheelendra <ssusheel@codeaurora.org>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: intel-gfx@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Thomas Hellstrom <thellstrom@vmware.com>
---
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c  |  1 -
 drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
 drivers/gpu/drm/i915/intel_display.c            |  1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c        |  1 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c        |  2 -
 drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
 drivers/gpu/drm/omapdrm/omap_crtc.c             |  1 -
 include/drm/drm_atomic_helper.h                 |  3 --
 9 files changed, 66 deletions(-)

diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
index 4fbbeab5c5d4..d73281095fac 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -431,7 +431,6 @@ static const struct drm_crtc_funcs atmel_hlcdc_crtc_funcs = {
 	.atomic_destroy_state = atmel_hlcdc_crtc_destroy_state,
 	.enable_vblank = atmel_hlcdc_crtc_enable_vblank,
 	.disable_vblank = atmel_hlcdc_crtc_disable_vblank,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
 };
 
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 4a960c741e35..22245aa8b1aa 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
 EXPORT_SYMBOL(drm_atomic_helper_resume);
 
 /**
- * drm_atomic_helper_crtc_set_property - helper for crtc properties
- * @crtc: DRM crtc
- * @property: DRM property
- * @val: value of property
- *
- * Provides a default crtc set_property handler using the atomic driver
- * interface.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
-int
-drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
-				    struct drm_property *property,
-				    uint64_t val)
-{
-	struct drm_atomic_state *state;
-	struct drm_crtc_state *crtc_state;
-	int ret = 0;
-
-	state = drm_atomic_state_alloc(crtc->dev);
-	if (!state)
-		return -ENOMEM;
-
-	/* ->set_property is always called with all locks held. */
-	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
-retry:
-	crtc_state = drm_atomic_get_crtc_state(state, crtc);
-	if (IS_ERR(crtc_state)) {
-		ret = PTR_ERR(crtc_state);
-		goto fail;
-	}
-
-	ret = drm_atomic_crtc_set_property(crtc, crtc_state,
-			property, val);
-	if (ret)
-		goto fail;
-
-	ret = drm_atomic_commit(state);
-fail:
-	if (ret == -EDEADLK)
-		goto backoff;
-
-	drm_atomic_state_put(state);
-	return ret;
-
-backoff:
-	drm_atomic_state_clear(state);
-	drm_atomic_legacy_backoff(state);
-
-	goto retry;
-}
-EXPORT_SYMBOL(drm_atomic_helper_crtc_set_property);
-
-/**
  * drm_atomic_helper_plane_set_property - helper for plane properties
  * @plane: DRM plane
  * @property: DRM property
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 706efd0c4190..961551135a39 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -567,7 +567,6 @@ static const struct drm_crtc_funcs ade_crtc_funcs = {
 	.set_config	= drm_atomic_helper_set_config,
 	.page_flip	= drm_atomic_helper_page_flip,
 	.reset		= drm_atomic_helper_crtc_reset,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.atomic_duplicate_state	= drm_atomic_helper_crtc_duplicate_state,
 	.atomic_destroy_state	= drm_atomic_helper_crtc_destroy_state,
 	.enable_vblank	= ade_crtc_enable_vblank,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index f7b128c33aa1..b4d0c5298a53 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12373,7 +12373,6 @@ static int intel_atomic_commit(struct drm_device *dev,
 static const struct drm_crtc_funcs intel_crtc_funcs = {
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
 	.set_config = drm_atomic_helper_set_config,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.destroy = intel_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
 	.atomic_duplicate_state = intel_crtc_duplicate_state,
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
index 3c7a9d343e05..47fa2aba1983 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
@@ -484,7 +484,6 @@ static const struct drm_crtc_funcs mdp4_crtc_funcs = {
 	.set_config = drm_atomic_helper_set_config,
 	.destroy = mdp4_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.cursor_set = mdp4_crtc_cursor_set,
 	.cursor_move = mdp4_crtc_cursor_move,
 	.reset = drm_atomic_helper_crtc_reset,
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
index 4322a502555a..5e3bc7224eee 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
@@ -919,7 +919,6 @@ static const struct drm_crtc_funcs mdp5_crtc_funcs = {
 	.set_config = drm_atomic_helper_set_config,
 	.destroy = mdp5_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.reset = mdp5_crtc_reset,
 	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
 	.atomic_destroy_state = mdp5_crtc_destroy_state,
@@ -932,7 +931,6 @@ static const struct drm_crtc_funcs mdp5_crtc_no_lm_cursor_funcs = {
 	.set_config = drm_atomic_helper_set_config,
 	.destroy = mdp5_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.reset = mdp5_crtc_reset,
 	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
 	.atomic_destroy_state = mdp5_crtc_destroy_state,
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index 9d40b2a8be4d..aa6fc525c539 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -2325,7 +2325,6 @@ nv50_head_func = {
 	.destroy = nv50_head_destroy,
 	.set_config = drm_atomic_helper_set_config,
 	.page_flip = drm_atomic_helper_page_flip,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.atomic_duplicate_state = nv50_head_atomic_duplicate_state,
 	.atomic_destroy_state = nv50_head_atomic_destroy_state,
 };
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index efa525442e7d..33ed24e9c599 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -550,7 +550,6 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
 	.destroy = omap_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
-	.set_property = drm_atomic_helper_crtc_set_property,
 	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 	.atomic_set_property = omap_crtc_atomic_set_property,
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index d6ddf5bc5fdd..e5c835d94540 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
 int drm_atomic_helper_resume(struct drm_device *dev,
 			     struct drm_atomic_state *state);
 
-int drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
-					struct drm_property *property,
-					uint64_t val);
 int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
 					struct drm_property *property,
 					uint64_t val);
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
@ 2017-07-25  8:01   ` Daniel Vetter
  2017-07-25  8:01 ` [PATCH 3/8] drm: Handle properties in the core " Daniel Vetter
                     ` (7 subsequent siblings)
  9 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development
  Cc: DRI Development, Daniel Vetter, Daniel Vetter, Liviu Dudau,
	Brian Starkey, Mali DP Maintainers, Boris Brezillon, Jani Nikula,
	Sean Paul, David Airlie, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
	Kyungmin Park, Kukjin Kim, Krzysztof Kozlowski, Ben Skeggs,
	Tomi Valkeinen, Laurent Pinchart, Benjamin Gaignard,
	Vincent Abriou, Yannick Fertre, Philippe Cornu, Jyri Sarha,
	Ville Syrjälä,
	Rongrong Zou, Shawn Guo, Alexey Brodkin, Eric Engestrom,
	Chris Wilson, Rob Clark, Archit Taneja, linux-arm-kernel,
	linux-samsung-soc, nouveau, linux-renesas-soc, Thomas Hellstrom,
	Maxime Ripard

It's dead code, the core handles all this directly now. This also
allows us to unexport drm_atomic_helper_plane_set_property.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Cc: Mali DP Maintainers <malidp@foss.arm.com>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Eric Engestrom <eric@engestrom.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: intel-gfx@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: Thomas Hellstrom <thellstrom@vmware.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
---
 drivers/gpu/drm/arm/malidp_planes.c             |  1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
 drivers/gpu/drm/drm_atomic.c                    |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
 drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
 drivers/gpu/drm/i915/intel_display.c            |  2 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
 drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
 drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
 drivers/gpu/drm/sti/sti_cursor.c                |  1 -
 drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
 drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
 drivers/gpu/drm/stm/ltdc.c                      |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
 include/drm/drm_atomic.h                        |  3 --
 include/drm/drm_atomic_helper.h                 |  3 --
 20 files changed, 1 insertion(+), 81 deletions(-)

diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
index 600fa7bd7f52..0f0f8234fe21 100644
--- a/drivers/gpu/drm/arm/malidp_planes.c
+++ b/drivers/gpu/drm/arm/malidp_planes.c
@@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
 static const struct drm_plane_funcs malidp_de_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = malidp_de_plane_destroy,
 	.reset = malidp_plane_reset,
 	.atomic_duplicate_state = malidp_duplicate_plane_state,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
index b5bd9b005225..9cd9e23e75c6 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
@@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
 static struct drm_plane_funcs layer_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = atmel_hlcdc_plane_destroy,
 	.reset = atmel_hlcdc_plane_reset,
 	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 0fd14aff7add..395438a7a576 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
  * RETURNS:
  * Zero on success, error code on failure
  */
-int drm_atomic_plane_set_property(struct drm_plane *plane,
+static int drm_atomic_plane_set_property(struct drm_plane *plane,
 		struct drm_plane_state *state, struct drm_property *property,
 		uint64_t val)
 {
@@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
 
 	return 0;
 }
-EXPORT_SYMBOL(drm_atomic_plane_set_property);
 
 /**
  * drm_atomic_plane_get_property - get property value from plane state
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 22245aa8b1aa..0482e39a7889 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
 EXPORT_SYMBOL(drm_atomic_helper_resume);
 
 /**
- * drm_atomic_helper_plane_set_property - helper for plane properties
- * @plane: DRM plane
- * @property: DRM property
- * @val: value of property
- *
- * Provides a default plane set_property handler using the atomic driver
- * interface.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
-int
-drm_atomic_helper_plane_set_property(struct drm_plane *plane,
-				    struct drm_property *property,
-				    uint64_t val)
-{
-	struct drm_atomic_state *state;
-	struct drm_plane_state *plane_state;
-	int ret = 0;
-
-	state = drm_atomic_state_alloc(plane->dev);
-	if (!state)
-		return -ENOMEM;
-
-	/* ->set_property is always called with all locks held. */
-	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
-retry:
-	plane_state = drm_atomic_get_plane_state(state, plane);
-	if (IS_ERR(plane_state)) {
-		ret = PTR_ERR(plane_state);
-		goto fail;
-	}
-
-	ret = drm_atomic_plane_set_property(plane, plane_state,
-			property, val);
-	if (ret)
-		goto fail;
-
-	ret = drm_atomic_commit(state);
-fail:
-	if (ret == -EDEADLK)
-		goto backoff;
-
-	drm_atomic_state_put(state);
-	return ret;
-
-backoff:
-	drm_atomic_state_clear(state);
-	drm_atomic_legacy_backoff(state);
-
-	goto retry;
-}
-EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
-
-/**
  * drm_atomic_helper_connector_set_property - helper for connector properties
  * @connector: DRM connector
  * @property: DRM property
diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
index 611b6fd65433..5e686ee74900 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
@@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
 	.destroy	= drm_plane_cleanup,
-	.set_property	= drm_atomic_helper_plane_set_property,
 	.reset		= exynos_drm_plane_reset,
 	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
 	.atomic_destroy_state = exynos_drm_plane_destroy_state,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
index 54a4542a40f1..0bbd3c3480ee 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
@@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
 static struct drm_plane_funcs hibmc_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 961551135a39..8df42fddd8f7 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
 static struct drm_plane_funcs ade_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b4d0c5298a53..e908982f6864 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = intel_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_get_property = intel_plane_atomic_get_property,
 	.atomic_set_property = intel_plane_atomic_set_property,
 	.atomic_duplicate_state = intel_plane_duplicate_state,
@@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
 	.update_plane = intel_legacy_cursor_update,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = intel_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_get_property = intel_plane_atomic_get_property,
 	.atomic_set_property = intel_plane_atomic_set_property,
 	.atomic_duplicate_state = intel_plane_duplicate_state,
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
index fe3a4de1a433..a60750b66b47 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
@@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
 		.update_plane = drm_atomic_helper_update_plane,
 		.disable_plane = drm_atomic_helper_disable_plane,
 		.destroy = mdp5_plane_destroy,
-		.set_property = drm_atomic_helper_plane_set_property,
 		.atomic_set_property = mdp5_plane_atomic_set_property,
 		.atomic_get_property = mdp5_plane_atomic_get_property,
 		.reset = mdp5_plane_reset,
@@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
 		.update_plane = mdp5_update_cursor_plane_legacy,
 		.disable_plane = drm_atomic_helper_disable_plane,
 		.destroy = mdp5_plane_destroy,
-		.set_property = drm_atomic_helper_plane_set_property,
 		.atomic_set_property = mdp5_plane_atomic_set_property,
 		.atomic_get_property = mdp5_plane_atomic_get_property,
 		.reset = mdp5_plane_reset,
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index aa6fc525c539..e2029f05bf7b 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -1055,7 +1055,6 @@ nv50_wndw = {
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = nv50_wndw_destroy,
 	.reset = nv50_wndw_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
 	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
 };
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
index 2160f64548e0..c29b66a36907 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = omap_plane_reset,
 	.destroy = omap_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
 	.atomic_set_property = omap_plane_atomic_set_property,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
index dcde6288da6c..985ce332eb0a 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
@@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = rcar_du_plane_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
 	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
index f870445ebc8d..caa82f2f2567 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
@@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = rcar_du_vsp_plane_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
 	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
index 5b3a41f74f21..9baa5e62a8e5 100644
--- a/drivers/gpu/drm/sti/sti_cursor.c
+++ b/drivers/gpu/drm/sti/sti_cursor.c
@@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_cursor_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
index 5ee0503945c8..66c5224011d2 100644
--- a/drivers/gpu/drm/sti/sti_gdp.c
+++ b/drivers/gpu/drm/sti/sti_gdp.c
@@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_gdp_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
index 53a46dda8bd5..bec3ccfec3b5 100644
--- a/drivers/gpu/drm/sti/sti_hqvdp.c
+++ b/drivers/gpu/drm/sti/sti_hqvdp.c
@@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_hqvdp_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index 04cc66d6b96f..76820bcbfed0 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = drm_plane_cleanup,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
index ba0d66c0d8ac..7667b038ae7f 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
@@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
 	.destroy	= drm_plane_cleanup,
-	.set_property	= drm_atomic_helper_plane_set_property,
 	.reset		= drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index 7cd0f303f5a3..1f6a2c768e4b 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
 struct drm_plane_state * __must_check
 drm_atomic_get_plane_state(struct drm_atomic_state *state,
 			   struct drm_plane *plane);
-int drm_atomic_plane_set_property(struct drm_plane *plane,
-		struct drm_plane_state *state, struct drm_property *property,
-		uint64_t val);
 struct drm_connector_state * __must_check
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
 			       struct drm_connector *connector);
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index e5c835d94540..a62aeb816dd8 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
 int drm_atomic_helper_resume(struct drm_device *dev,
 			     struct drm_atomic_state *state);
 
-int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
-					struct drm_property *property,
-					uint64_t val);
 int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
 					struct drm_property *property,
 					uint64_t val);
-- 
2.13.3

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-25  8:01   ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development
  Cc: DRI Development, Daniel Vetter, Daniel Vetter, Liviu Dudau,
	Brian Starkey, Mali DP Maintainers, Boris Brezillon, Jani Nikula,
	Sean Paul, David Airlie, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
	Kyungmin Park, Kukjin Kim, Krzysztof Kozlowski, Ben Skeggs,
	Tomi Valkeinen, Laurent Pinchart

It's dead code, the core handles all this directly now. This also
allows us to unexport drm_atomic_helper_plane_set_property.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Cc: Mali DP Maintainers <malidp@foss.arm.com>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Eric Engestrom <eric@engestrom.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: intel-gfx@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: Thomas Hellstrom <thellstrom@vmware.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
---
 drivers/gpu/drm/arm/malidp_planes.c             |  1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
 drivers/gpu/drm/drm_atomic.c                    |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
 drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
 drivers/gpu/drm/i915/intel_display.c            |  2 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
 drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
 drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
 drivers/gpu/drm/sti/sti_cursor.c                |  1 -
 drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
 drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
 drivers/gpu/drm/stm/ltdc.c                      |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
 include/drm/drm_atomic.h                        |  3 --
 include/drm/drm_atomic_helper.h                 |  3 --
 20 files changed, 1 insertion(+), 81 deletions(-)

diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
index 600fa7bd7f52..0f0f8234fe21 100644
--- a/drivers/gpu/drm/arm/malidp_planes.c
+++ b/drivers/gpu/drm/arm/malidp_planes.c
@@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
 static const struct drm_plane_funcs malidp_de_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = malidp_de_plane_destroy,
 	.reset = malidp_plane_reset,
 	.atomic_duplicate_state = malidp_duplicate_plane_state,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
index b5bd9b005225..9cd9e23e75c6 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
@@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
 static struct drm_plane_funcs layer_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = atmel_hlcdc_plane_destroy,
 	.reset = atmel_hlcdc_plane_reset,
 	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 0fd14aff7add..395438a7a576 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
  * RETURNS:
  * Zero on success, error code on failure
  */
-int drm_atomic_plane_set_property(struct drm_plane *plane,
+static int drm_atomic_plane_set_property(struct drm_plane *plane,
 		struct drm_plane_state *state, struct drm_property *property,
 		uint64_t val)
 {
@@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
 
 	return 0;
 }
-EXPORT_SYMBOL(drm_atomic_plane_set_property);
 
 /**
  * drm_atomic_plane_get_property - get property value from plane state
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 22245aa8b1aa..0482e39a7889 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
 EXPORT_SYMBOL(drm_atomic_helper_resume);
 
 /**
- * drm_atomic_helper_plane_set_property - helper for plane properties
- * @plane: DRM plane
- * @property: DRM property
- * @val: value of property
- *
- * Provides a default plane set_property handler using the atomic driver
- * interface.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
-int
-drm_atomic_helper_plane_set_property(struct drm_plane *plane,
-				    struct drm_property *property,
-				    uint64_t val)
-{
-	struct drm_atomic_state *state;
-	struct drm_plane_state *plane_state;
-	int ret = 0;
-
-	state = drm_atomic_state_alloc(plane->dev);
-	if (!state)
-		return -ENOMEM;
-
-	/* ->set_property is always called with all locks held. */
-	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
-retry:
-	plane_state = drm_atomic_get_plane_state(state, plane);
-	if (IS_ERR(plane_state)) {
-		ret = PTR_ERR(plane_state);
-		goto fail;
-	}
-
-	ret = drm_atomic_plane_set_property(plane, plane_state,
-			property, val);
-	if (ret)
-		goto fail;
-
-	ret = drm_atomic_commit(state);
-fail:
-	if (ret == -EDEADLK)
-		goto backoff;
-
-	drm_atomic_state_put(state);
-	return ret;
-
-backoff:
-	drm_atomic_state_clear(state);
-	drm_atomic_legacy_backoff(state);
-
-	goto retry;
-}
-EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
-
-/**
  * drm_atomic_helper_connector_set_property - helper for connector properties
  * @connector: DRM connector
  * @property: DRM property
diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
index 611b6fd65433..5e686ee74900 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
@@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
 	.destroy	= drm_plane_cleanup,
-	.set_property	= drm_atomic_helper_plane_set_property,
 	.reset		= exynos_drm_plane_reset,
 	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
 	.atomic_destroy_state = exynos_drm_plane_destroy_state,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
index 54a4542a40f1..0bbd3c3480ee 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
@@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
 static struct drm_plane_funcs hibmc_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 961551135a39..8df42fddd8f7 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
 static struct drm_plane_funcs ade_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b4d0c5298a53..e908982f6864 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = intel_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_get_property = intel_plane_atomic_get_property,
 	.atomic_set_property = intel_plane_atomic_set_property,
 	.atomic_duplicate_state = intel_plane_duplicate_state,
@@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
 	.update_plane = intel_legacy_cursor_update,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = intel_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_get_property = intel_plane_atomic_get_property,
 	.atomic_set_property = intel_plane_atomic_set_property,
 	.atomic_duplicate_state = intel_plane_duplicate_state,
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
index fe3a4de1a433..a60750b66b47 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
@@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
 		.update_plane = drm_atomic_helper_update_plane,
 		.disable_plane = drm_atomic_helper_disable_plane,
 		.destroy = mdp5_plane_destroy,
-		.set_property = drm_atomic_helper_plane_set_property,
 		.atomic_set_property = mdp5_plane_atomic_set_property,
 		.atomic_get_property = mdp5_plane_atomic_get_property,
 		.reset = mdp5_plane_reset,
@@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
 		.update_plane = mdp5_update_cursor_plane_legacy,
 		.disable_plane = drm_atomic_helper_disable_plane,
 		.destroy = mdp5_plane_destroy,
-		.set_property = drm_atomic_helper_plane_set_property,
 		.atomic_set_property = mdp5_plane_atomic_set_property,
 		.atomic_get_property = mdp5_plane_atomic_get_property,
 		.reset = mdp5_plane_reset,
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index aa6fc525c539..e2029f05bf7b 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -1055,7 +1055,6 @@ nv50_wndw = {
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = nv50_wndw_destroy,
 	.reset = nv50_wndw_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
 	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
 };
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
index 2160f64548e0..c29b66a36907 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = omap_plane_reset,
 	.destroy = omap_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
 	.atomic_set_property = omap_plane_atomic_set_property,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
index dcde6288da6c..985ce332eb0a 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
@@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = rcar_du_plane_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
 	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
index f870445ebc8d..caa82f2f2567 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
@@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = rcar_du_vsp_plane_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
 	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
index 5b3a41f74f21..9baa5e62a8e5 100644
--- a/drivers/gpu/drm/sti/sti_cursor.c
+++ b/drivers/gpu/drm/sti/sti_cursor.c
@@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_cursor_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
index 5ee0503945c8..66c5224011d2 100644
--- a/drivers/gpu/drm/sti/sti_gdp.c
+++ b/drivers/gpu/drm/sti/sti_gdp.c
@@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_gdp_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
index 53a46dda8bd5..bec3ccfec3b5 100644
--- a/drivers/gpu/drm/sti/sti_hqvdp.c
+++ b/drivers/gpu/drm/sti/sti_hqvdp.c
@@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_hqvdp_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index 04cc66d6b96f..76820bcbfed0 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = drm_plane_cleanup,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
index ba0d66c0d8ac..7667b038ae7f 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
@@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
 	.destroy	= drm_plane_cleanup,
-	.set_property	= drm_atomic_helper_plane_set_property,
 	.reset		= drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index 7cd0f303f5a3..1f6a2c768e4b 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
 struct drm_plane_state * __must_check
 drm_atomic_get_plane_state(struct drm_atomic_state *state,
 			   struct drm_plane *plane);
-int drm_atomic_plane_set_property(struct drm_plane *plane,
-		struct drm_plane_state *state, struct drm_property *property,
-		uint64_t val);
 struct drm_connector_state * __must_check
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
 			       struct drm_connector *connector);
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index e5c835d94540..a62aeb816dd8 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
 int drm_atomic_helper_resume(struct drm_device *dev,
 			     struct drm_atomic_state *state);
 
-int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
-					struct drm_property *property,
-					uint64_t val);
 int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
 					struct drm_property *property,
 					uint64_t val);
-- 
2.13.3

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-25  8:01   ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: linux-arm-kernel

It's dead code, the core handles all this directly now. This also
allows us to unexport drm_atomic_helper_plane_set_property.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Cc: Mali DP Maintainers <malidp@foss.arm.com>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: "Ville Syrj?l?" <ville.syrjala@linux.intel.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Eric Engestrom <eric@engestrom.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-samsung-soc at vger.kernel.org
Cc: intel-gfx at lists.freedesktop.org
Cc: nouveau at lists.freedesktop.org
Cc: linux-renesas-soc at vger.kernel.org
Cc: Thomas Hellstrom <thellstrom@vmware.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
---
 drivers/gpu/drm/arm/malidp_planes.c             |  1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
 drivers/gpu/drm/drm_atomic.c                    |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
 drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
 drivers/gpu/drm/i915/intel_display.c            |  2 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
 drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
 drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
 drivers/gpu/drm/sti/sti_cursor.c                |  1 -
 drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
 drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
 drivers/gpu/drm/stm/ltdc.c                      |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
 include/drm/drm_atomic.h                        |  3 --
 include/drm/drm_atomic_helper.h                 |  3 --
 20 files changed, 1 insertion(+), 81 deletions(-)

diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
index 600fa7bd7f52..0f0f8234fe21 100644
--- a/drivers/gpu/drm/arm/malidp_planes.c
+++ b/drivers/gpu/drm/arm/malidp_planes.c
@@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
 static const struct drm_plane_funcs malidp_de_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = malidp_de_plane_destroy,
 	.reset = malidp_plane_reset,
 	.atomic_duplicate_state = malidp_duplicate_plane_state,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
index b5bd9b005225..9cd9e23e75c6 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
@@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
 static struct drm_plane_funcs layer_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = atmel_hlcdc_plane_destroy,
 	.reset = atmel_hlcdc_plane_reset,
 	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 0fd14aff7add..395438a7a576 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
  * RETURNS:
  * Zero on success, error code on failure
  */
-int drm_atomic_plane_set_property(struct drm_plane *plane,
+static int drm_atomic_plane_set_property(struct drm_plane *plane,
 		struct drm_plane_state *state, struct drm_property *property,
 		uint64_t val)
 {
@@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
 
 	return 0;
 }
-EXPORT_SYMBOL(drm_atomic_plane_set_property);
 
 /**
  * drm_atomic_plane_get_property - get property value from plane state
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 22245aa8b1aa..0482e39a7889 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
 EXPORT_SYMBOL(drm_atomic_helper_resume);
 
 /**
- * drm_atomic_helper_plane_set_property - helper for plane properties
- * @plane: DRM plane
- * @property: DRM property
- * @val: value of property
- *
- * Provides a default plane set_property handler using the atomic driver
- * interface.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
-int
-drm_atomic_helper_plane_set_property(struct drm_plane *plane,
-				    struct drm_property *property,
-				    uint64_t val)
-{
-	struct drm_atomic_state *state;
-	struct drm_plane_state *plane_state;
-	int ret = 0;
-
-	state = drm_atomic_state_alloc(plane->dev);
-	if (!state)
-		return -ENOMEM;
-
-	/* ->set_property is always called with all locks held. */
-	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
-retry:
-	plane_state = drm_atomic_get_plane_state(state, plane);
-	if (IS_ERR(plane_state)) {
-		ret = PTR_ERR(plane_state);
-		goto fail;
-	}
-
-	ret = drm_atomic_plane_set_property(plane, plane_state,
-			property, val);
-	if (ret)
-		goto fail;
-
-	ret = drm_atomic_commit(state);
-fail:
-	if (ret == -EDEADLK)
-		goto backoff;
-
-	drm_atomic_state_put(state);
-	return ret;
-
-backoff:
-	drm_atomic_state_clear(state);
-	drm_atomic_legacy_backoff(state);
-
-	goto retry;
-}
-EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
-
-/**
  * drm_atomic_helper_connector_set_property - helper for connector properties
  * @connector: DRM connector
  * @property: DRM property
diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
index 611b6fd65433..5e686ee74900 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
@@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
 	.destroy	= drm_plane_cleanup,
-	.set_property	= drm_atomic_helper_plane_set_property,
 	.reset		= exynos_drm_plane_reset,
 	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
 	.atomic_destroy_state = exynos_drm_plane_destroy_state,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
index 54a4542a40f1..0bbd3c3480ee 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
@@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
 static struct drm_plane_funcs hibmc_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 961551135a39..8df42fddd8f7 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
 static struct drm_plane_funcs ade_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b4d0c5298a53..e908982f6864 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = intel_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_get_property = intel_plane_atomic_get_property,
 	.atomic_set_property = intel_plane_atomic_set_property,
 	.atomic_duplicate_state = intel_plane_duplicate_state,
@@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
 	.update_plane = intel_legacy_cursor_update,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = intel_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_get_property = intel_plane_atomic_get_property,
 	.atomic_set_property = intel_plane_atomic_set_property,
 	.atomic_duplicate_state = intel_plane_duplicate_state,
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
index fe3a4de1a433..a60750b66b47 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
@@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
 		.update_plane = drm_atomic_helper_update_plane,
 		.disable_plane = drm_atomic_helper_disable_plane,
 		.destroy = mdp5_plane_destroy,
-		.set_property = drm_atomic_helper_plane_set_property,
 		.atomic_set_property = mdp5_plane_atomic_set_property,
 		.atomic_get_property = mdp5_plane_atomic_get_property,
 		.reset = mdp5_plane_reset,
@@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
 		.update_plane = mdp5_update_cursor_plane_legacy,
 		.disable_plane = drm_atomic_helper_disable_plane,
 		.destroy = mdp5_plane_destroy,
-		.set_property = drm_atomic_helper_plane_set_property,
 		.atomic_set_property = mdp5_plane_atomic_set_property,
 		.atomic_get_property = mdp5_plane_atomic_get_property,
 		.reset = mdp5_plane_reset,
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index aa6fc525c539..e2029f05bf7b 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -1055,7 +1055,6 @@ nv50_wndw = {
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = nv50_wndw_destroy,
 	.reset = nv50_wndw_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
 	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
 };
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
index 2160f64548e0..c29b66a36907 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = omap_plane_reset,
 	.destroy = omap_plane_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
 	.atomic_set_property = omap_plane_atomic_set_property,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
index dcde6288da6c..985ce332eb0a 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
@@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = rcar_du_plane_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
 	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
index f870445ebc8d..caa82f2f2567 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
@@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.reset = rcar_du_vsp_plane_reset,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.destroy = drm_plane_cleanup,
 	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
 	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
index 5b3a41f74f21..9baa5e62a8e5 100644
--- a/drivers/gpu/drm/sti/sti_cursor.c
+++ b/drivers/gpu/drm/sti/sti_cursor.c
@@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_cursor_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
index 5ee0503945c8..66c5224011d2 100644
--- a/drivers/gpu/drm/sti/sti_gdp.c
+++ b/drivers/gpu/drm/sti/sti_gdp.c
@@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_gdp_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
index 53a46dda8bd5..bec3ccfec3b5 100644
--- a/drivers/gpu/drm/sti/sti_hqvdp.c
+++ b/drivers/gpu/drm/sti/sti_hqvdp.c
@@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = sti_hqvdp_destroy,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = sti_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index 04cc66d6b96f..76820bcbfed0 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
 	.destroy = drm_plane_cleanup,
-	.set_property = drm_atomic_helper_plane_set_property,
 	.reset = drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
index ba0d66c0d8ac..7667b038ae7f 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
@@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
 	.update_plane	= drm_atomic_helper_update_plane,
 	.disable_plane	= drm_atomic_helper_disable_plane,
 	.destroy	= drm_plane_cleanup,
-	.set_property	= drm_atomic_helper_plane_set_property,
 	.reset		= drm_atomic_helper_plane_reset,
 	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index 7cd0f303f5a3..1f6a2c768e4b 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
 struct drm_plane_state * __must_check
 drm_atomic_get_plane_state(struct drm_atomic_state *state,
 			   struct drm_plane *plane);
-int drm_atomic_plane_set_property(struct drm_plane *plane,
-		struct drm_plane_state *state, struct drm_property *property,
-		uint64_t val);
 struct drm_connector_state * __must_check
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
 			       struct drm_connector *connector);
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index e5c835d94540..a62aeb816dd8 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
 int drm_atomic_helper_resume(struct drm_device *dev,
 			     struct drm_atomic_state *state);
 
-int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
-					struct drm_property *property,
-					uint64_t val);
 int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
 					struct drm_property *property,
 					uint64_t val);
-- 
2.13.3

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 6/8] drm: Nuke drm_atomic_helper_connector_set_property
       [not found] ` <20170725080122.20548-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
@ 2017-07-25  8:01   ` Daniel Vetter
       [not found]     ` <20170725080122.20548-7-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
  2017-08-08 10:04     ` Vincent ABRIOU
  0 siblings, 2 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development
  Cc: David Airlie, Jani Nikula, Eric Anholt, Sean Paul,
	DRI Development, Benjamin Gaignard,
	nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Daniel Vetter,
	Vincent Abriou, Ben Skeggs

It's dead code, the core handles all this directly now. This also
allows us to unexport drm_atomic_helper_connector_set_property.

The only special case is nouveau which used one function for both
pre-nv50 legacy modeset code and post-nv50 atomic world instead of 2
vtables. But amounts to exactly the same.

What is rather strange here is how few drivers set this up, I suspect
the earlier patch to handle properties in the core did end up fixing a
pile of possible issues.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Eric Anholt <eric@anholt.net>
Cc: intel-gfx@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
---
 drivers/gpu/drm/drm_atomic.c                |  3 +-
 drivers/gpu/drm/drm_atomic_helper.c         | 55 -----------------------------
 drivers/gpu/drm/i915/intel_crt.c            |  1 -
 drivers/gpu/drm/i915/intel_dp.c             |  1 -
 drivers/gpu/drm/i915/intel_dp_mst.c         |  1 -
 drivers/gpu/drm/i915/intel_dsi.c            |  1 -
 drivers/gpu/drm/i915/intel_dvo.c            |  1 -
 drivers/gpu/drm/i915/intel_hdmi.c           |  1 -
 drivers/gpu/drm/i915/intel_lvds.c           |  1 -
 drivers/gpu/drm/i915/intel_sdvo.c           |  1 -
 drivers/gpu/drm/i915/intel_tv.c             |  1 -
 drivers/gpu/drm/nouveau/nouveau_connector.c |  3 --
 drivers/gpu/drm/nouveau/nv50_display.c      |  1 -
 drivers/gpu/drm/sti/sti_hdmi.c              |  1 -
 drivers/gpu/drm/vc4/vc4_vec.c               |  1 -
 include/drm/drm_atomic.h                    |  3 --
 include/drm/drm_atomic_helper.h             |  3 --
 17 files changed, 1 insertion(+), 78 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 395438a7a576..306fdca92abf 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1144,7 +1144,7 @@ EXPORT_SYMBOL(drm_atomic_get_connector_state);
  * RETURNS:
  * Zero on success, error code on failure
  */
-int drm_atomic_connector_set_property(struct drm_connector *connector,
+static int drm_atomic_connector_set_property(struct drm_connector *connector,
 		struct drm_connector_state *state, struct drm_property *property,
 		uint64_t val)
 {
@@ -1211,7 +1211,6 @@ int drm_atomic_connector_set_property(struct drm_connector *connector,
 
 	return 0;
 }
-EXPORT_SYMBOL(drm_atomic_connector_set_property);
 
 static void drm_atomic_connector_print_state(struct drm_printer *p,
 		const struct drm_connector_state *state)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 0482e39a7889..1ca0dcca6230 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -2967,61 +2967,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
 }
 EXPORT_SYMBOL(drm_atomic_helper_resume);
 
-/**
- * drm_atomic_helper_connector_set_property - helper for connector properties
- * @connector: DRM connector
- * @property: DRM property
- * @val: value of property
- *
- * Provides a default connector set_property handler using the atomic driver
- * interface.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
-int
-drm_atomic_helper_connector_set_property(struct drm_connector *connector,
-				    struct drm_property *property,
-				    uint64_t val)
-{
-	struct drm_atomic_state *state;
-	struct drm_connector_state *connector_state;
-	int ret = 0;
-
-	state = drm_atomic_state_alloc(connector->dev);
-	if (!state)
-		return -ENOMEM;
-
-	/* ->set_property is always called with all locks held. */
-	state->acquire_ctx = connector->dev->mode_config.acquire_ctx;
-retry:
-	connector_state = drm_atomic_get_connector_state(state, connector);
-	if (IS_ERR(connector_state)) {
-		ret = PTR_ERR(connector_state);
-		goto fail;
-	}
-
-	ret = drm_atomic_connector_set_property(connector, connector_state,
-			property, val);
-	if (ret)
-		goto fail;
-
-	ret = drm_atomic_commit(state);
-fail:
-	if (ret == -EDEADLK)
-		goto backoff;
-
-	drm_atomic_state_put(state);
-	return ret;
-
-backoff:
-	drm_atomic_state_clear(state);
-	drm_atomic_legacy_backoff(state);
-
-	goto retry;
-}
-EXPORT_SYMBOL(drm_atomic_helper_connector_set_property);
-
 static int page_flip_common(struct drm_atomic_state *state,
 			    struct drm_crtc *crtc,
 			    struct drm_framebuffer *fb,
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 84a1f5e85153..84c3a6dc7c2a 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -807,7 +807,6 @@ static const struct drm_connector_funcs intel_crt_connector_funcs = {
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_crt_destroy,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 };
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 2d42d09428c9..19b082ea57ef 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5010,7 +5010,6 @@ static const struct drm_connector_funcs intel_dp_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.force = intel_dp_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
 	.atomic_set_property = intel_digital_connector_atomic_set_property,
 	.late_register = intel_dp_connector_register,
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index e4ea968b1d6b..59a6dfd48ed4 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -349,7 +349,6 @@ static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_dp_mst_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dp_mst_connector_destroy,
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 50ec836da8b1..375e7cfcf207 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -1658,7 +1658,6 @@ static const struct drm_connector_funcs intel_dsi_connector_funcs = {
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dsi_connector_destroy,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
 	.atomic_set_property = intel_digital_connector_atomic_set_property,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index c1544a53095d..6b1970542911 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -350,7 +350,6 @@ static const struct drm_connector_funcs intel_dvo_connector_funcs = {
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dvo_destroy,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 };
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 5609976539bf..3074190b9455 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1765,7 +1765,6 @@ static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
 	.detect = intel_hdmi_detect,
 	.force = intel_hdmi_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
 	.atomic_set_property = intel_digital_connector_atomic_set_property,
 	.late_register = intel_connector_register,
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6fe5d7c3bc23..6579299f5d00 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -598,7 +598,6 @@ static const struct drm_connector_funcs intel_lvds_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_lvds_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
 	.atomic_set_property = intel_digital_connector_atomic_set_property,
 	.late_register = intel_connector_register,
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index e58a47db9a9d..a8eee1984ddf 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2196,7 +2196,6 @@ static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_sdvo_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_get_property = intel_sdvo_connector_atomic_get_property,
 	.atomic_set_property = intel_sdvo_connector_atomic_set_property,
 	.late_register = intel_sdvo_connector_register,
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 784df024e230..e4ef2919b682 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1411,7 +1411,6 @@ static const struct drm_connector_funcs intel_tv_connector_funcs = {
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_tv_destroy,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index dab78c660dd6..2468e81918fd 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -770,9 +770,6 @@ nouveau_connector_set_property(struct drm_connector *connector,
 	struct drm_encoder *encoder = to_drm_encoder(nv_encoder);
 	int ret;
 
-	if (drm_drv_uses_atomic_modeset(connector->dev))
-		return drm_atomic_helper_connector_set_property(connector, property, value);
-
 	ret = connector->funcs->atomic_set_property(&nv_connector->base,
 						    &asyc->state,
 						    property, value);
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index e2029f05bf7b..80a96eb08bbf 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -3122,7 +3122,6 @@ nv50_mstc = {
 	.reset = nouveau_conn_reset,
 	.detect = nv50_mstc_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.destroy = nv50_mstc_destroy,
 	.atomic_duplicate_state = nouveau_conn_atomic_duplicate_state,
 	.atomic_destroy_state = nouveau_conn_atomic_destroy_state,
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index dbc6a195d6f9..21f11dfae472 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -1118,7 +1118,6 @@ static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
 	.detect = sti_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.atomic_set_property = sti_hdmi_connector_set_property,
 	.atomic_get_property = sti_hdmi_connector_get_property,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
index 09c1e05765fa..369fea5a13a1 100644
--- a/drivers/gpu/drm/vc4/vc4_vec.c
+++ b/drivers/gpu/drm/vc4/vc4_vec.c
@@ -369,7 +369,6 @@ static const struct drm_connector_funcs vc4_vec_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = vc4_vec_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
-	.set_property = drm_atomic_helper_connector_set_property,
 	.destroy = vc4_vec_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index 1f6a2c768e4b..fccc09d5f2b3 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -318,9 +318,6 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
 struct drm_connector_state * __must_check
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
 			       struct drm_connector *connector);
-int drm_atomic_connector_set_property(struct drm_connector *connector,
-		struct drm_connector_state *state, struct drm_property *property,
-		uint64_t val);
 
 void drm_atomic_private_obj_init(struct drm_private_obj *obj,
 				 struct drm_private_state *state,
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index a62aeb816dd8..619089a027ec 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
 int drm_atomic_helper_resume(struct drm_device *dev,
 			     struct drm_atomic_state *state);
 
-int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
-					struct drm_property *property,
-					uint64_t val);
 int drm_atomic_helper_page_flip(struct drm_crtc *crtc,
 				struct drm_framebuffer *fb,
 				struct drm_pending_vblank_event *event,
-- 
2.13.3

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
@ 2017-07-25  8:01   ` Daniel Vetter
  2017-07-25  8:01 ` [PATCH 2/8] drm: Don't update property values for atomic drivers Daniel Vetter
                     ` (8 subsequent siblings)
  9 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, David Airlie, Daniel Vetter,
	DRI Development, virtualization, Andrzej Hajda, Tomi Valkeinen,
	linux-mediatek, Laurent Pinchart, Benjamin Gaignard,
	Romain Perier, Daniel Vetter, nouveau, Jyri Sarha,
	Heiko Stuebner, Marek Vasut, linux-renesas-soc, Archit Taneja,
	Lars-Peter Clausen, Joonyoung Shim, Kevin Hilman, Alexey

It's dead code, the core handles all this directly now.

The only special case is nouveau and tda988x which used one function
for both legacy modeset code and -nv50 atomic world instead of 2
vtables. But amounts to exactly the same.

v2: Rebase over the panel/brideg refactorings in stm/ltdc.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Peter Senna Tschudin <peter.senna@collabora.com>
Cc: Martin Donnelly <martin.donnelly@ge.com>
Cc: Martyn Welch <martyn.welch@collabora.co.uk>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Alison Wang <alison.wang@freescale.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: CK Hu <ck.hu@mediatek.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Eric Anholt <eric@anholt.net>
Cc: Mark Yao <mark.yao@rock-chips.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: Yakir Yang <kuankuan.y@gmail.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jose Abreu <Jose.Abreu@synopsys.com>
Cc: Romain Perier <romain.perier@collabora.com>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Hai Li <hali@codeaurora.org>
Cc: "Noralf Trønnes" <noralf@tronnes.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-tegra@vger.kernel.org
Cc: virtualization@lists.linux-foundation.org
Cc: zain wang <wzz@rock-chips.com>
Cc: Baoyou Xie <baoyou.xie@linaro.org>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
---
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
 drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
 drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
 .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
 drivers/gpu/drm/bridge/panel.c                     |  1 -
 drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
 drivers/gpu/drm/bridge/sii902x.c                   |  1 -
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
 drivers/gpu/drm/bridge/tc358767.c                  |  1 -
 drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
 drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
 drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
 drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
 drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
 drivers/gpu/drm/i915/intel_crt.c                   |  1 -
 drivers/gpu/drm/i915/intel_dp.c                    |  1 -
 drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
 drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
 drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
 drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
 drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
 drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
 drivers/gpu/drm/i915/intel_tv.c                    |  1 -
 drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
 drivers/gpu/drm/imx/imx-tve.c                      |  1 -
 drivers/gpu/drm/imx/parallel-display.c             |  1 -
 drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
 drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
 drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
 drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
 drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
 drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
 drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
 drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
 drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
 drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
 drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
 drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
 drivers/gpu/drm/sti/sti_hda.c                      |  1 -
 drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
 drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
 drivers/gpu/drm/tegra/dsi.c                        |  1 -
 drivers/gpu/drm/tegra/hdmi.c                       |  1 -
 drivers/gpu/drm/tegra/rgb.c                        |  1 -
 drivers/gpu/drm/tegra/sor.c                        |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
 drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
 drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
 drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
 drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
 drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
 drivers/gpu/drm/zte/zx_vga.c                       |  1 -
 include/drm/drm_atomic_helper.h                    |  2 -
 68 files changed, 3 insertions(+), 164 deletions(-)

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
index ff9792d350c8..682c090fa3ed 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -786,7 +786,6 @@ adv7511_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static struct drm_connector_funcs adv7511_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = adv7511_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix-anx78xx.c
index dc045e0c32fc..9385eb0b1ee4 100644
--- a/drivers/gpu/drm/bridge/analogix-anx78xx.c
+++ b/drivers/gpu/drm/bridge/analogix-anx78xx.c
@@ -1002,7 +1002,6 @@ static enum drm_connector_status anx78xx_detect(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs anx78xx_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = anx78xx_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 4c758ed51939..5dd3f1cd074a 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1005,7 +1005,6 @@ analogix_dp_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs analogix_dp_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = analogix_dp_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c
index 8a52539e618e..de5e7dee7ad6 100644
--- a/drivers/gpu/drm/bridge/dumb-vga-dac.c
+++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c
@@ -92,7 +92,6 @@ dumb_vga_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs dumb_vga_con_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= dumb_vga_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
index 11f11086a68f..7ccadba7c98c 100644
--- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -193,7 +193,6 @@ static enum drm_connector_status ge_b850v3_lvds_detect(
 }
 
 static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = ge_b850v3_lvds_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
index f0b5d0fc8594..d64a3283822a 100644
--- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
+++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
@@ -238,7 +238,6 @@ static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs =
 };
 
 static const struct drm_connector_funcs ptn3460_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 685c1a480201..59288b248dc5 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -50,7 +50,6 @@ panel_bridge_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs panel_bridge_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
index 4f7725d4a309..81198f5e9afa 100644
--- a/drivers/gpu/drm/bridge/parade-ps8622.c
+++ b/drivers/gpu/drm/bridge/parade-ps8622.c
@@ -476,7 +476,6 @@ static const struct drm_connector_helper_funcs ps8622_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs ps8622_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
index 9efb7b8fad57..b1ab4ab09532 100644
--- a/drivers/gpu/drm/bridge/sii902x.c
+++ b/drivers/gpu/drm/bridge/sii902x.c
@@ -124,7 +124,6 @@ sii902x_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs sii902x_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = sii902x_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 60faf2d2bc6b..91ac849604a8 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1920,7 +1920,6 @@ static void dw_hdmi_connector_force(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs dw_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = dw_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index 12a35f9c3adc..503252d6a74d 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1160,7 +1160,6 @@ static const struct drm_connector_helper_funcs tc_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs tc_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
index 7ea2a15e8807..acb857030951 100644
--- a/drivers/gpu/drm/bridge/ti-tfp410.c
+++ b/drivers/gpu/drm/bridge/ti-tfp410.c
@@ -102,7 +102,6 @@ tfp410_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs tfp410_con_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= tfp410_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 1ca0dcca6230..877733ae44ac 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -3102,85 +3102,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc,
 EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
 
 /**
- * drm_atomic_helper_connector_dpms() - connector dpms helper implementation
- * @connector: affected connector
- * @mode: DPMS mode
- *
- * This is the main helper function provided by the atomic helper framework for
- * implementing the legacy DPMS connector interface. It computes the new desired
- * &drm_crtc_state.active state for the corresponding CRTC (if the connector is
- * enabled) and updates it.
- *
- * Returns:
- * Returns 0 on success, negative errno numbers on failure.
- */
-int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
-				     int mode)
-{
-	struct drm_mode_config *config = &connector->dev->mode_config;
-	struct drm_atomic_state *state;
-	struct drm_crtc_state *crtc_state;
-	struct drm_crtc *crtc;
-	struct drm_connector *tmp_connector;
-	struct drm_connector_list_iter conn_iter;
-	int ret;
-	bool active = false;
-	int old_mode = connector->dpms;
-
-	if (mode != DRM_MODE_DPMS_ON)
-		mode = DRM_MODE_DPMS_OFF;
-
-	connector->dpms = mode;
-	crtc = connector->state->crtc;
-
-	if (!crtc)
-		return 0;
-
-	state = drm_atomic_state_alloc(connector->dev);
-	if (!state)
-		return -ENOMEM;
-
-	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
-retry:
-	crtc_state = drm_atomic_get_crtc_state(state, crtc);
-	if (IS_ERR(crtc_state)) {
-		ret = PTR_ERR(crtc_state);
-		goto fail;
-	}
-
-	WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
-
-	drm_connector_list_iter_begin(connector->dev, &conn_iter);
-	drm_for_each_connector_iter(tmp_connector, &conn_iter) {
-		if (tmp_connector->state->crtc != crtc)
-			continue;
-
-		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
-			active = true;
-			break;
-		}
-	}
-	drm_connector_list_iter_end(&conn_iter);
-	crtc_state->active = active;
-
-	ret = drm_atomic_commit(state);
-fail:
-	if (ret == -EDEADLK)
-		goto backoff;
-	if (ret != 0)
-		connector->dpms = old_mode;
-	drm_atomic_state_put(state);
-	return ret;
-
-backoff:
-	drm_atomic_state_clear(state);
-	drm_atomic_legacy_backoff(state);
-
-	goto retry;
-}
-EXPORT_SYMBOL(drm_atomic_helper_connector_dpms);
-
-/**
  * drm_atomic_helper_best_encoder - Helper for
  * 	&drm_connector_helper_funcs.best_encoder callback
  * @connector: Connector control structure
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 63abcd280fa0..76d80e5de521 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -59,7 +59,6 @@ static void exynos_dpi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs exynos_dpi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = exynos_dpi_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = exynos_dpi_connector_destroy,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index f580be170089..4ea7cc7cb3de 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1537,7 +1537,6 @@ static void exynos_dsi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs exynos_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = exynos_dsi_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = exynos_dsi_connector_destroy,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
index cb8a72842537..9186a654c3b5 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -289,7 +289,6 @@ static void vidi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs vidi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = vidi_detect,
 	.destroy = vidi_connector_destroy,
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index c953927fb0cb..0e2a472c3021 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -835,7 +835,6 @@ static void hdmi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = hdmi_detect,
 	.destroy = hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index dcbf3c06e1d8..edd7d8127d19 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -63,7 +63,6 @@ static const struct drm_connector_funcs fsl_dcu_drm_connector_funcs = {
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.destroy = fsl_dcu_drm_connector_destroy,
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.reset = drm_atomic_helper_connector_reset,
 };
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
index 12a18557c5fd..ec4dd9df9150 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
@@ -47,7 +47,6 @@ static const struct drm_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs hibmc_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index d1e7ac540199..54e3255dde13 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -969,14 +969,6 @@ static int tda998x_audio_codec_init(struct tda998x_priv *priv,
 
 /* DRM connector functions */
 
-static int tda998x_connector_dpms(struct drm_connector *connector, int mode)
-{
-	if (drm_core_check_feature(connector->dev, DRIVER_ATOMIC))
-		return drm_atomic_helper_connector_dpms(connector, mode);
-	else
-		return drm_helper_connector_dpms(connector, mode);
-}
-
 static int tda998x_connector_fill_modes(struct drm_connector *connector,
 					uint32_t maxX, uint32_t maxY)
 {
@@ -1014,7 +1006,7 @@ static void tda998x_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tda998x_connector_funcs = {
-	.dpms = tda998x_connector_dpms,
+	.dpms = drm_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.fill_modes = tda998x_connector_fill_modes,
 	.detect = tda998x_connector_detect,
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 84c3a6dc7c2a..70e0ff41070c 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -802,7 +802,6 @@ void intel_crt_reset(struct drm_encoder *encoder)
  */
 
 static const struct drm_connector_funcs intel_crt_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 19b082ea57ef..76c8a0bd17f9 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5007,7 +5007,6 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
 }
 
 static const struct drm_connector_funcs intel_dp_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.force = intel_dp_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 59a6dfd48ed4..58568559711a 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -346,7 +346,6 @@ intel_dp_mst_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_dp_mst_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.late_register = intel_connector_register,
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 375e7cfcf207..b0b3adf016f8 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -1653,7 +1653,6 @@ static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs intel_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dsi_connector_destroy,
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 6b1970542911..baf369d2de30 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -344,7 +344,6 @@ static void intel_dvo_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_dvo_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_dvo_detect,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 3074190b9455..2ef1ee85129d 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1761,7 +1761,6 @@ static void intel_hdmi_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_hdmi_detect,
 	.force = intel_hdmi_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6579299f5d00..61d557948e21 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -595,7 +595,6 @@ static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs intel_lvds_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_lvds_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index a8eee1984ddf..bea8152ae859 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2193,7 +2193,6 @@ intel_sdvo_connector_duplicate_state(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_sdvo_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_sdvo_connector_atomic_get_property,
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index e4ef2919b682..906893c006d8 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1407,7 +1407,6 @@ intel_tv_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_tv_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_tv_destroy,
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 8b05ecb8fdef..56dd7a9a8e25 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -389,7 +389,6 @@ static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
 
 
 static const struct drm_connector_funcs imx_ldb_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
index 4826bb781723..bc27c2699464 100644
--- a/drivers/gpu/drm/imx/imx-tve.c
+++ b/drivers/gpu/drm/imx/imx-tve.c
@@ -341,7 +341,6 @@ static int imx_tve_atomic_check(struct drm_encoder *encoder,
 }
 
 static const struct drm_connector_funcs imx_tve_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index 8aca20209cb8..8def97d75030 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -135,7 +135,6 @@ static int imx_pd_encoder_atomic_check(struct drm_encoder *encoder,
 }
 
 static const struct drm_connector_funcs imx_pd_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
index a31bd2a82de5..7e5e24c2152a 100644
--- a/drivers/gpu/drm/mediatek/mtk_dsi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
@@ -766,7 +766,6 @@ static const struct drm_encoder_helper_funcs mtk_dsi_encoder_helper_funcs = {
 };
 
 static const struct drm_connector_funcs mtk_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index f2437cd1e0f9..690c67507cbc 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1261,7 +1261,6 @@ static struct drm_encoder *mtk_hdmi_conn_best_enc(struct drm_connector *conn)
 }
 
 static const struct drm_connector_funcs mtk_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = hdmi_conn_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = hdmi_conn_destroy,
diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
index 00775b397dba..79d95ca8a0c0 100644
--- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
+++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
@@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= meson_cvbs_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= meson_cvbs_connector_destroy,
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index a879ffa534b4..855248132b2b 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -626,7 +626,6 @@ static void dsi_mgr_bridge_mode_set(struct drm_bridge *bridge,
 }
 
 static const struct drm_connector_funcs dsi_mgr_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = dsi_mgr_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = dsi_mgr_connector_destroy,
diff --git a/drivers/gpu/drm/msm/edp/edp_connector.c b/drivers/gpu/drm/msm/edp/edp_connector.c
index 5960628ceb93..6f3fc6b0f0a3 100644
--- a/drivers/gpu/drm/msm/edp/edp_connector.c
+++ b/drivers/gpu/drm/msm/edp/edp_connector.c
@@ -92,7 +92,6 @@ static int edp_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs edp_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = edp_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = edp_connector_destroy,
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
index a2515b466ce5..71536d9c7fe8 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
@@ -407,7 +407,6 @@ static int msm_hdmi_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = hdmi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
index 353429b05733..e3b1c86b7aae 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
@@ -91,7 +91,6 @@ static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs mdp4_lvds_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = mdp4_lvds_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = mdp4_lvds_connector_destroy,
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index f7d729aa09bd..e5edf016a439 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -74,7 +74,6 @@ static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs mxsfb_panel_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= mxsfb_panel_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= mxsfb_panel_connector_destroy,
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 2468e81918fd..5137155bf3c0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -1072,17 +1072,9 @@ nouveau_connector_helper_funcs = {
 	.best_encoder = nouveau_connector_best_encoder,
 };
 
-static int
-nouveau_connector_dpms(struct drm_connector *connector, int mode)
-{
-	if (drm_drv_uses_atomic_modeset(connector->dev))
-		return drm_atomic_helper_connector_dpms(connector, mode);
-	return drm_helper_connector_dpms(connector, mode);
-}
-
 static const struct drm_connector_funcs
 nouveau_connector_funcs = {
-	.dpms = nouveau_connector_dpms,
+	.dpms = drm_helper_connector_dpms,
 	.reset = nouveau_conn_reset,
 	.detect = nouveau_connector_detect,
 	.force = nouveau_connector_force,
@@ -1097,7 +1089,7 @@ nouveau_connector_funcs = {
 
 static const struct drm_connector_funcs
 nouveau_connector_funcs_lvds = {
-	.dpms = nouveau_connector_dpms,
+	.dpms = drm_helper_connector_dpms,
 	.reset = nouveau_conn_reset,
 	.detect = nouveau_connector_detect_lvds,
 	.force = nouveau_connector_force,
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index 80a96eb08bbf..d442def6c965 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -3118,7 +3118,6 @@ nv50_mstc_destroy(struct drm_connector *connector)
 
 static const struct drm_connector_funcs
 nv50_mstc = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = nouveau_conn_reset,
 	.detect = nv50_mstc_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
index c24b6b783e9a..d1ec76ef5cc6 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -195,7 +195,6 @@ static int omap_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs omap_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = omap_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/pl111/pl111_connector.c b/drivers/gpu/drm/pl111/pl111_connector.c
index 3f213d7e7692..d335f9a29ce4 100644
--- a/drivers/gpu/drm/pl111/pl111_connector.c
+++ b/drivers/gpu/drm/pl111/pl111_connector.c
@@ -69,7 +69,6 @@ const struct drm_connector_funcs connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = pl111_connector_destroy,
 	.detect = pl111_connector_detect,
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
index ee91481131ad..b373ad48ef5f 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
@@ -46,7 +46,6 @@ static void rcar_du_lvds_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = rcar_du_lvds_connector_destroy,
diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
index 9b0b0588bbed..a57da051f516 100644
--- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
+++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
@@ -254,7 +254,6 @@ static void cdn_dp_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs cdn_dp_atomic_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = cdn_dp_connector_detect,
 	.destroy = cdn_dp_connector_destroy,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
index 21b9737662ae..9a20b9dc27c8 100644
--- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
@@ -1080,7 +1080,6 @@ static void dw_mipi_dsi_drm_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs dw_mipi_dsi_atomic_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = dw_mipi_dsi_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
index 7149968aa25a..bd87768dd549 100644
--- a/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -593,7 +593,6 @@ static void inno_hdmi_connector_destroy(struct drm_connector *connector)
 }
 
 static struct drm_connector_funcs inno_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = inno_hdmi_probe_single_connector_modes,
 	.detect = inno_hdmi_connector_detect,
 	.destroy = inno_hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index a51cd9f754db..852bf2293b05 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -412,7 +412,6 @@ static int sti_dvo_late_register(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sti_dvo_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = sti_dvo_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
index d6ed909d9d75..cf65e32b5090 100644
--- a/drivers/gpu/drm/sti/sti_hda.c
+++ b/drivers/gpu/drm/sti/sti_hda.c
@@ -647,7 +647,6 @@ static int sti_hda_late_register(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sti_hda_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index 21f11dfae472..30f02d2fdd03 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -1113,7 +1113,6 @@ static int sti_hdmi_late_register(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = sti_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
index 83b7a2a025f2..f5d0d6bd1084 100644
--- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
+++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
@@ -306,7 +306,6 @@ sun4i_hdmi_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs sun4i_hdmi_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= sun4i_hdmi_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index 422b191faa77..550bb262943f 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -120,7 +120,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
 }
 
 static struct drm_connector_funcs sun4i_rgb_con_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= sun4i_rgb_connector_destroy,
 	.reset			= drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
index 338b9e5bb2a3..7b45ac9383ea 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
@@ -546,7 +546,6 @@ sun4i_tv_comp_connector_destroy(struct drm_connector *connector)
 }
 
 static struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= sun4i_tv_comp_connector_destroy,
 	.reset			= drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 3dea1216bafd..e4b5aedfdbd4 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -815,7 +815,6 @@ tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tegra_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = tegra_dsi_connector_reset,
 	.detect = tegra_output_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index 718d8db406a6..a621b0da4092 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -902,7 +902,6 @@ tegra_hdmi_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs tegra_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = tegra_hdmi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c
index a131b44e2d6f..78ec5193741d 100644
--- a/drivers/gpu/drm/tegra/rgb.c
+++ b/drivers/gpu/drm/tegra/rgb.c
@@ -88,7 +88,6 @@ static void tegra_dc_write_regs(struct tegra_dc *dc,
 }
 
 static const struct drm_connector_funcs tegra_rgb_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = tegra_output_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index fb2709c0c461..e0642d05a8d3 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -1340,7 +1340,6 @@ tegra_sor_connector_duplicate_state(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tegra_sor_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = tegra_sor_connector_reset,
 	.detect = tegra_sor_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 28c3e2f44f64..1813a3623ce6 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -189,7 +189,6 @@ static struct drm_encoder *panel_connector_best_encoder(
 
 static const struct drm_connector_funcs panel_connector_funcs = {
 	.destroy            = panel_connector_destroy,
-	.dpms               = drm_atomic_helper_connector_dpms,
 	.fill_modes         = drm_helper_probe_single_connector_modes,
 	.reset              = drm_atomic_helper_connector_reset,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
index aabfad882e23..1e2dfb1b1d6b 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
@@ -202,7 +202,6 @@ static struct drm_encoder *tfp410_connector_best_encoder(
 
 static const struct drm_connector_funcs tfp410_connector_funcs = {
 	.destroy            = tfp410_connector_destroy,
-	.dpms               = drm_atomic_helper_connector_dpms,
 	.detect             = tfp410_connector_detect,
 	.fill_modes         = drm_helper_probe_single_connector_modes,
 	.reset              = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
index ec43fb7ad9e4..79b6687977d3 100644
--- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
+++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
@@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tinydrm_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = tinydrm_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 406d6d83b6c6..b249b79ce04a 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -265,7 +265,6 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs vc4_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = vc4_hdmi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = vc4_hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
index 369fea5a13a1..3a9a302247a2 100644
--- a/drivers/gpu/drm/vc4/vc4_vec.c
+++ b/drivers/gpu/drm/vc4/vc4_vec.c
@@ -366,7 +366,6 @@ static int vc4_vec_connector_get_modes(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs vc4_vec_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = vc4_vec_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = vc4_vec_connector_destroy,
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index ffd22e5ab43a..b6d52055a11f 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -252,7 +252,6 @@ static void virtio_gpu_conn_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs virtio_gpu_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = virtio_gpu_conn_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = virtio_gpu_conn_destroy,
diff --git a/drivers/gpu/drm/zte/zx_hdmi.c b/drivers/gpu/drm/zte/zx_hdmi.c
index 7e834e3eeed9..b8abb1b496ff 100644
--- a/drivers/gpu/drm/zte/zx_hdmi.c
+++ b/drivers/gpu/drm/zte/zx_hdmi.c
@@ -300,7 +300,6 @@ zx_hdmi_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs zx_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = zx_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/zte/zx_tvenc.c b/drivers/gpu/drm/zte/zx_tvenc.c
index b56dc69843fc..0de1a71ca4e0 100644
--- a/drivers/gpu/drm/zte/zx_tvenc.c
+++ b/drivers/gpu/drm/zte/zx_tvenc.c
@@ -269,7 +269,6 @@ static struct drm_connector_helper_funcs zx_tvenc_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs zx_tvenc_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/zte/zx_vga.c b/drivers/gpu/drm/zte/zx_vga.c
index 1e0811f775cb..3e7e33cd3dfa 100644
--- a/drivers/gpu/drm/zte/zx_vga.c
+++ b/drivers/gpu/drm/zte/zx_vga.c
@@ -138,7 +138,6 @@ zx_vga_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs zx_vga_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = zx_vga_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index 619089a027ec..d2b56cc657e9 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -136,8 +136,6 @@ int drm_atomic_helper_page_flip_target(
 				uint32_t flags,
 				uint32_t target,
 				struct drm_modeset_acquire_ctx *ctx);
-int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
-				     int mode);
 struct drm_encoder *
 drm_atomic_helper_best_encoder(struct drm_connector *connector);
 
-- 
2.13.3

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-07-25  8:01   ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: linus-amlogic

It's dead code, the core handles all this directly now.

The only special case is nouveau and tda988x which used one function
for both legacy modeset code and -nv50 atomic world instead of 2
vtables. But amounts to exactly the same.

v2: Rebase over the panel/brideg refactorings in stm/ltdc.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Peter Senna Tschudin <peter.senna@collabora.com>
Cc: Martin Donnelly <martin.donnelly@ge.com>
Cc: Martyn Welch <martyn.welch@collabora.co.uk>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Alison Wang <alison.wang@freescale.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: CK Hu <ck.hu@mediatek.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Eric Anholt <eric@anholt.net>
Cc: Mark Yao <mark.yao@rock-chips.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: Yakir Yang <kuankuan.y@gmail.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jose Abreu <Jose.Abreu@synopsys.com>
Cc: Romain Perier <romain.perier@collabora.com>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Hai Li <hali@codeaurora.org>
Cc: "Noralf Tr?nnes" <noralf@tronnes.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-samsung-soc at vger.kernel.org
Cc: intel-gfx at lists.freedesktop.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: nouveau at lists.freedesktop.org
Cc: linux-renesas-soc at vger.kernel.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-tegra at vger.kernel.org
Cc: virtualization at lists.linux-foundation.org
Cc: zain wang <wzz@rock-chips.com>
Cc: Baoyou Xie <baoyou.xie@linaro.org>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
---
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
 drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
 drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
 .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
 drivers/gpu/drm/bridge/panel.c                     |  1 -
 drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
 drivers/gpu/drm/bridge/sii902x.c                   |  1 -
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
 drivers/gpu/drm/bridge/tc358767.c                  |  1 -
 drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
 drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
 drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
 drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
 drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
 drivers/gpu/drm/i915/intel_crt.c                   |  1 -
 drivers/gpu/drm/i915/intel_dp.c                    |  1 -
 drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
 drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
 drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
 drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
 drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
 drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
 drivers/gpu/drm/i915/intel_tv.c                    |  1 -
 drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
 drivers/gpu/drm/imx/imx-tve.c                      |  1 -
 drivers/gpu/drm/imx/parallel-display.c             |  1 -
 drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
 drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
 drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
 drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
 drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
 drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
 drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
 drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
 drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
 drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
 drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
 drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
 drivers/gpu/drm/sti/sti_hda.c                      |  1 -
 drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
 drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
 drivers/gpu/drm/tegra/dsi.c                        |  1 -
 drivers/gpu/drm/tegra/hdmi.c                       |  1 -
 drivers/gpu/drm/tegra/rgb.c                        |  1 -
 drivers/gpu/drm/tegra/sor.c                        |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
 drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
 drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
 drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
 drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
 drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
 drivers/gpu/drm/zte/zx_vga.c                       |  1 -
 include/drm/drm_atomic_helper.h                    |  2 -
 68 files changed, 3 insertions(+), 164 deletions(-)

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
index ff9792d350c8..682c090fa3ed 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -786,7 +786,6 @@ adv7511_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static struct drm_connector_funcs adv7511_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = adv7511_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix-anx78xx.c
index dc045e0c32fc..9385eb0b1ee4 100644
--- a/drivers/gpu/drm/bridge/analogix-anx78xx.c
+++ b/drivers/gpu/drm/bridge/analogix-anx78xx.c
@@ -1002,7 +1002,6 @@ static enum drm_connector_status anx78xx_detect(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs anx78xx_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = anx78xx_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 4c758ed51939..5dd3f1cd074a 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1005,7 +1005,6 @@ analogix_dp_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs analogix_dp_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = analogix_dp_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c
index 8a52539e618e..de5e7dee7ad6 100644
--- a/drivers/gpu/drm/bridge/dumb-vga-dac.c
+++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c
@@ -92,7 +92,6 @@ dumb_vga_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs dumb_vga_con_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= dumb_vga_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
index 11f11086a68f..7ccadba7c98c 100644
--- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -193,7 +193,6 @@ static enum drm_connector_status ge_b850v3_lvds_detect(
 }
 
 static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = ge_b850v3_lvds_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
index f0b5d0fc8594..d64a3283822a 100644
--- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
+++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
@@ -238,7 +238,6 @@ static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs =
 };
 
 static const struct drm_connector_funcs ptn3460_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 685c1a480201..59288b248dc5 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -50,7 +50,6 @@ panel_bridge_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs panel_bridge_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
index 4f7725d4a309..81198f5e9afa 100644
--- a/drivers/gpu/drm/bridge/parade-ps8622.c
+++ b/drivers/gpu/drm/bridge/parade-ps8622.c
@@ -476,7 +476,6 @@ static const struct drm_connector_helper_funcs ps8622_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs ps8622_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
index 9efb7b8fad57..b1ab4ab09532 100644
--- a/drivers/gpu/drm/bridge/sii902x.c
+++ b/drivers/gpu/drm/bridge/sii902x.c
@@ -124,7 +124,6 @@ sii902x_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs sii902x_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = sii902x_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 60faf2d2bc6b..91ac849604a8 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1920,7 +1920,6 @@ static void dw_hdmi_connector_force(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs dw_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = dw_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
index 12a35f9c3adc..503252d6a74d 100644
--- a/drivers/gpu/drm/bridge/tc358767.c
+++ b/drivers/gpu/drm/bridge/tc358767.c
@@ -1160,7 +1160,6 @@ static const struct drm_connector_helper_funcs tc_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs tc_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
index 7ea2a15e8807..acb857030951 100644
--- a/drivers/gpu/drm/bridge/ti-tfp410.c
+++ b/drivers/gpu/drm/bridge/ti-tfp410.c
@@ -102,7 +102,6 @@ tfp410_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs tfp410_con_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= tfp410_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 1ca0dcca6230..877733ae44ac 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -3102,85 +3102,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc,
 EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
 
 /**
- * drm_atomic_helper_connector_dpms() - connector dpms helper implementation
- * @connector: affected connector
- * @mode: DPMS mode
- *
- * This is the main helper function provided by the atomic helper framework for
- * implementing the legacy DPMS connector interface. It computes the new desired
- * &drm_crtc_state.active state for the corresponding CRTC (if the connector is
- * enabled) and updates it.
- *
- * Returns:
- * Returns 0 on success, negative errno numbers on failure.
- */
-int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
-				     int mode)
-{
-	struct drm_mode_config *config = &connector->dev->mode_config;
-	struct drm_atomic_state *state;
-	struct drm_crtc_state *crtc_state;
-	struct drm_crtc *crtc;
-	struct drm_connector *tmp_connector;
-	struct drm_connector_list_iter conn_iter;
-	int ret;
-	bool active = false;
-	int old_mode = connector->dpms;
-
-	if (mode != DRM_MODE_DPMS_ON)
-		mode = DRM_MODE_DPMS_OFF;
-
-	connector->dpms = mode;
-	crtc = connector->state->crtc;
-
-	if (!crtc)
-		return 0;
-
-	state = drm_atomic_state_alloc(connector->dev);
-	if (!state)
-		return -ENOMEM;
-
-	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
-retry:
-	crtc_state = drm_atomic_get_crtc_state(state, crtc);
-	if (IS_ERR(crtc_state)) {
-		ret = PTR_ERR(crtc_state);
-		goto fail;
-	}
-
-	WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
-
-	drm_connector_list_iter_begin(connector->dev, &conn_iter);
-	drm_for_each_connector_iter(tmp_connector, &conn_iter) {
-		if (tmp_connector->state->crtc != crtc)
-			continue;
-
-		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
-			active = true;
-			break;
-		}
-	}
-	drm_connector_list_iter_end(&conn_iter);
-	crtc_state->active = active;
-
-	ret = drm_atomic_commit(state);
-fail:
-	if (ret == -EDEADLK)
-		goto backoff;
-	if (ret != 0)
-		connector->dpms = old_mode;
-	drm_atomic_state_put(state);
-	return ret;
-
-backoff:
-	drm_atomic_state_clear(state);
-	drm_atomic_legacy_backoff(state);
-
-	goto retry;
-}
-EXPORT_SYMBOL(drm_atomic_helper_connector_dpms);
-
-/**
  * drm_atomic_helper_best_encoder - Helper for
  * 	&drm_connector_helper_funcs.best_encoder callback
  * @connector: Connector control structure
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 63abcd280fa0..76d80e5de521 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -59,7 +59,6 @@ static void exynos_dpi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs exynos_dpi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = exynos_dpi_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = exynos_dpi_connector_destroy,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index f580be170089..4ea7cc7cb3de 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1537,7 +1537,6 @@ static void exynos_dsi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs exynos_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = exynos_dsi_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = exynos_dsi_connector_destroy,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
index cb8a72842537..9186a654c3b5 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -289,7 +289,6 @@ static void vidi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs vidi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = vidi_detect,
 	.destroy = vidi_connector_destroy,
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index c953927fb0cb..0e2a472c3021 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -835,7 +835,6 @@ static void hdmi_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = hdmi_detect,
 	.destroy = hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
index dcbf3c06e1d8..edd7d8127d19 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -63,7 +63,6 @@ static const struct drm_connector_funcs fsl_dcu_drm_connector_funcs = {
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.destroy = fsl_dcu_drm_connector_destroy,
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.reset = drm_atomic_helper_connector_reset,
 };
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
index 12a18557c5fd..ec4dd9df9150 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
@@ -47,7 +47,6 @@ static const struct drm_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs hibmc_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index d1e7ac540199..54e3255dde13 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -969,14 +969,6 @@ static int tda998x_audio_codec_init(struct tda998x_priv *priv,
 
 /* DRM connector functions */
 
-static int tda998x_connector_dpms(struct drm_connector *connector, int mode)
-{
-	if (drm_core_check_feature(connector->dev, DRIVER_ATOMIC))
-		return drm_atomic_helper_connector_dpms(connector, mode);
-	else
-		return drm_helper_connector_dpms(connector, mode);
-}
-
 static int tda998x_connector_fill_modes(struct drm_connector *connector,
 					uint32_t maxX, uint32_t maxY)
 {
@@ -1014,7 +1006,7 @@ static void tda998x_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tda998x_connector_funcs = {
-	.dpms = tda998x_connector_dpms,
+	.dpms = drm_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.fill_modes = tda998x_connector_fill_modes,
 	.detect = tda998x_connector_detect,
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 84c3a6dc7c2a..70e0ff41070c 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -802,7 +802,6 @@ void intel_crt_reset(struct drm_encoder *encoder)
  */
 
 static const struct drm_connector_funcs intel_crt_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 19b082ea57ef..76c8a0bd17f9 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5007,7 +5007,6 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
 }
 
 static const struct drm_connector_funcs intel_dp_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.force = intel_dp_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 59a6dfd48ed4..58568559711a 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -346,7 +346,6 @@ intel_dp_mst_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_dp_mst_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.late_register = intel_connector_register,
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 375e7cfcf207..b0b3adf016f8 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -1653,7 +1653,6 @@ static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs intel_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dsi_connector_destroy,
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 6b1970542911..baf369d2de30 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -344,7 +344,6 @@ static void intel_dvo_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_dvo_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_dvo_detect,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 3074190b9455..2ef1ee85129d 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1761,7 +1761,6 @@ static void intel_hdmi_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_hdmi_detect,
 	.force = intel_hdmi_force,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6579299f5d00..61d557948e21 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -595,7 +595,6 @@ static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs
 };
 
 static const struct drm_connector_funcs intel_lvds_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_lvds_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index a8eee1984ddf..bea8152ae859 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2193,7 +2193,6 @@ intel_sdvo_connector_duplicate_state(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_sdvo_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_sdvo_connector_atomic_get_property,
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index e4ef2919b682..906893c006d8 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1407,7 +1407,6 @@ intel_tv_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs intel_tv_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.late_register = intel_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_tv_destroy,
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 8b05ecb8fdef..56dd7a9a8e25 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -389,7 +389,6 @@ static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
 
 
 static const struct drm_connector_funcs imx_ldb_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
index 4826bb781723..bc27c2699464 100644
--- a/drivers/gpu/drm/imx/imx-tve.c
+++ b/drivers/gpu/drm/imx/imx-tve.c
@@ -341,7 +341,6 @@ static int imx_tve_atomic_check(struct drm_encoder *encoder,
 }
 
 static const struct drm_connector_funcs imx_tve_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index 8aca20209cb8..8def97d75030 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -135,7 +135,6 @@ static int imx_pd_encoder_atomic_check(struct drm_encoder *encoder,
 }
 
 static const struct drm_connector_funcs imx_pd_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
index a31bd2a82de5..7e5e24c2152a 100644
--- a/drivers/gpu/drm/mediatek/mtk_dsi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
@@ -766,7 +766,6 @@ static const struct drm_encoder_helper_funcs mtk_dsi_encoder_helper_funcs = {
 };
 
 static const struct drm_connector_funcs mtk_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index f2437cd1e0f9..690c67507cbc 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1261,7 +1261,6 @@ static struct drm_encoder *mtk_hdmi_conn_best_enc(struct drm_connector *conn)
 }
 
 static const struct drm_connector_funcs mtk_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = hdmi_conn_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = hdmi_conn_destroy,
diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
index 00775b397dba..79d95ca8a0c0 100644
--- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
+++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
@@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= meson_cvbs_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= meson_cvbs_connector_destroy,
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index a879ffa534b4..855248132b2b 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -626,7 +626,6 @@ static void dsi_mgr_bridge_mode_set(struct drm_bridge *bridge,
 }
 
 static const struct drm_connector_funcs dsi_mgr_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = dsi_mgr_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = dsi_mgr_connector_destroy,
diff --git a/drivers/gpu/drm/msm/edp/edp_connector.c b/drivers/gpu/drm/msm/edp/edp_connector.c
index 5960628ceb93..6f3fc6b0f0a3 100644
--- a/drivers/gpu/drm/msm/edp/edp_connector.c
+++ b/drivers/gpu/drm/msm/edp/edp_connector.c
@@ -92,7 +92,6 @@ static int edp_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs edp_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = edp_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = edp_connector_destroy,
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
index a2515b466ce5..71536d9c7fe8 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
@@ -407,7 +407,6 @@ static int msm_hdmi_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = hdmi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
index 353429b05733..e3b1c86b7aae 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
@@ -91,7 +91,6 @@ static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs mdp4_lvds_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = mdp4_lvds_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = mdp4_lvds_connector_destroy,
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index f7d729aa09bd..e5edf016a439 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -74,7 +74,6 @@ static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs mxsfb_panel_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= mxsfb_panel_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= mxsfb_panel_connector_destroy,
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 2468e81918fd..5137155bf3c0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -1072,17 +1072,9 @@ nouveau_connector_helper_funcs = {
 	.best_encoder = nouveau_connector_best_encoder,
 };
 
-static int
-nouveau_connector_dpms(struct drm_connector *connector, int mode)
-{
-	if (drm_drv_uses_atomic_modeset(connector->dev))
-		return drm_atomic_helper_connector_dpms(connector, mode);
-	return drm_helper_connector_dpms(connector, mode);
-}
-
 static const struct drm_connector_funcs
 nouveau_connector_funcs = {
-	.dpms = nouveau_connector_dpms,
+	.dpms = drm_helper_connector_dpms,
 	.reset = nouveau_conn_reset,
 	.detect = nouveau_connector_detect,
 	.force = nouveau_connector_force,
@@ -1097,7 +1089,7 @@ nouveau_connector_funcs = {
 
 static const struct drm_connector_funcs
 nouveau_connector_funcs_lvds = {
-	.dpms = nouveau_connector_dpms,
+	.dpms = drm_helper_connector_dpms,
 	.reset = nouveau_conn_reset,
 	.detect = nouveau_connector_detect_lvds,
 	.force = nouveau_connector_force,
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index 80a96eb08bbf..d442def6c965 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -3118,7 +3118,6 @@ nv50_mstc_destroy(struct drm_connector *connector)
 
 static const struct drm_connector_funcs
 nv50_mstc = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = nouveau_conn_reset,
 	.detect = nv50_mstc_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
index c24b6b783e9a..d1ec76ef5cc6 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -195,7 +195,6 @@ static int omap_connector_mode_valid(struct drm_connector *connector,
 }
 
 static const struct drm_connector_funcs omap_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = omap_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/pl111/pl111_connector.c b/drivers/gpu/drm/pl111/pl111_connector.c
index 3f213d7e7692..d335f9a29ce4 100644
--- a/drivers/gpu/drm/pl111/pl111_connector.c
+++ b/drivers/gpu/drm/pl111/pl111_connector.c
@@ -69,7 +69,6 @@ const struct drm_connector_funcs connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = pl111_connector_destroy,
 	.detect = pl111_connector_detect,
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
index ee91481131ad..b373ad48ef5f 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
@@ -46,7 +46,6 @@ static void rcar_du_lvds_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = rcar_du_lvds_connector_destroy,
diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
index 9b0b0588bbed..a57da051f516 100644
--- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
+++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
@@ -254,7 +254,6 @@ static void cdn_dp_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs cdn_dp_atomic_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = cdn_dp_connector_detect,
 	.destroy = cdn_dp_connector_destroy,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
index 21b9737662ae..9a20b9dc27c8 100644
--- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
@@ -1080,7 +1080,6 @@ static void dw_mipi_dsi_drm_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs dw_mipi_dsi_atomic_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = dw_mipi_dsi_drm_connector_destroy,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
index 7149968aa25a..bd87768dd549 100644
--- a/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -593,7 +593,6 @@ static void inno_hdmi_connector_destroy(struct drm_connector *connector)
 }
 
 static struct drm_connector_funcs inno_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = inno_hdmi_probe_single_connector_modes,
 	.detect = inno_hdmi_connector_detect,
 	.destroy = inno_hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
index a51cd9f754db..852bf2293b05 100644
--- a/drivers/gpu/drm/sti/sti_dvo.c
+++ b/drivers/gpu/drm/sti/sti_dvo.c
@@ -412,7 +412,6 @@ static int sti_dvo_late_register(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sti_dvo_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = sti_dvo_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
index d6ed909d9d75..cf65e32b5090 100644
--- a/drivers/gpu/drm/sti/sti_hda.c
+++ b/drivers/gpu/drm/sti/sti_hda.c
@@ -647,7 +647,6 @@ static int sti_hda_late_register(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sti_hda_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
index 21f11dfae472..30f02d2fdd03 100644
--- a/drivers/gpu/drm/sti/sti_hdmi.c
+++ b/drivers/gpu/drm/sti/sti_hdmi.c
@@ -1113,7 +1113,6 @@ static int sti_hdmi_late_register(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = sti_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
index 83b7a2a025f2..f5d0d6bd1084 100644
--- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
+++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
@@ -306,7 +306,6 @@ sun4i_hdmi_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs sun4i_hdmi_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.detect			= sun4i_hdmi_connector_detect,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= drm_connector_cleanup,
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index 422b191faa77..550bb262943f 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -120,7 +120,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
 }
 
 static struct drm_connector_funcs sun4i_rgb_con_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= sun4i_rgb_connector_destroy,
 	.reset			= drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
index 338b9e5bb2a3..7b45ac9383ea 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
@@ -546,7 +546,6 @@ sun4i_tv_comp_connector_destroy(struct drm_connector *connector)
 }
 
 static struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
-	.dpms			= drm_atomic_helper_connector_dpms,
 	.fill_modes		= drm_helper_probe_single_connector_modes,
 	.destroy		= sun4i_tv_comp_connector_destroy,
 	.reset			= drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 3dea1216bafd..e4b5aedfdbd4 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -815,7 +815,6 @@ tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tegra_dsi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = tegra_dsi_connector_reset,
 	.detect = tegra_output_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index 718d8db406a6..a621b0da4092 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -902,7 +902,6 @@ tegra_hdmi_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs tegra_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = tegra_hdmi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c
index a131b44e2d6f..78ec5193741d 100644
--- a/drivers/gpu/drm/tegra/rgb.c
+++ b/drivers/gpu/drm/tegra/rgb.c
@@ -88,7 +88,6 @@ static void tegra_dc_write_regs(struct tegra_dc *dc,
 }
 
 static const struct drm_connector_funcs tegra_rgb_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = tegra_output_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index fb2709c0c461..e0642d05a8d3 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -1340,7 +1340,6 @@ tegra_sor_connector_duplicate_state(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tegra_sor_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = tegra_sor_connector_reset,
 	.detect = tegra_sor_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 28c3e2f44f64..1813a3623ce6 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -189,7 +189,6 @@ static struct drm_encoder *panel_connector_best_encoder(
 
 static const struct drm_connector_funcs panel_connector_funcs = {
 	.destroy            = panel_connector_destroy,
-	.dpms               = drm_atomic_helper_connector_dpms,
 	.fill_modes         = drm_helper_probe_single_connector_modes,
 	.reset              = drm_atomic_helper_connector_reset,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
index aabfad882e23..1e2dfb1b1d6b 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
@@ -202,7 +202,6 @@ static struct drm_encoder *tfp410_connector_best_encoder(
 
 static const struct drm_connector_funcs tfp410_connector_funcs = {
 	.destroy            = tfp410_connector_destroy,
-	.dpms               = drm_atomic_helper_connector_dpms,
 	.detect             = tfp410_connector_detect,
 	.fill_modes         = drm_helper_probe_single_connector_modes,
 	.reset              = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
index ec43fb7ad9e4..79b6687977d3 100644
--- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
+++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
@@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs tinydrm_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.reset = drm_atomic_helper_connector_reset,
 	.detect = tinydrm_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 406d6d83b6c6..b249b79ce04a 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -265,7 +265,6 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs vc4_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = vc4_hdmi_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = vc4_hdmi_connector_destroy,
diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
index 369fea5a13a1..3a9a302247a2 100644
--- a/drivers/gpu/drm/vc4/vc4_vec.c
+++ b/drivers/gpu/drm/vc4/vc4_vec.c
@@ -366,7 +366,6 @@ static int vc4_vec_connector_get_modes(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs vc4_vec_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = vc4_vec_connector_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = vc4_vec_connector_destroy,
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index ffd22e5ab43a..b6d52055a11f 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -252,7 +252,6 @@ static void virtio_gpu_conn_destroy(struct drm_connector *connector)
 }
 
 static const struct drm_connector_funcs virtio_gpu_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = virtio_gpu_conn_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = virtio_gpu_conn_destroy,
diff --git a/drivers/gpu/drm/zte/zx_hdmi.c b/drivers/gpu/drm/zte/zx_hdmi.c
index 7e834e3eeed9..b8abb1b496ff 100644
--- a/drivers/gpu/drm/zte/zx_hdmi.c
+++ b/drivers/gpu/drm/zte/zx_hdmi.c
@@ -300,7 +300,6 @@ zx_hdmi_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs zx_hdmi_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = zx_hdmi_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/drivers/gpu/drm/zte/zx_tvenc.c b/drivers/gpu/drm/zte/zx_tvenc.c
index b56dc69843fc..0de1a71ca4e0 100644
--- a/drivers/gpu/drm/zte/zx_tvenc.c
+++ b/drivers/gpu/drm/zte/zx_tvenc.c
@@ -269,7 +269,6 @@ static struct drm_connector_helper_funcs zx_tvenc_connector_helper_funcs = {
 };
 
 static const struct drm_connector_funcs zx_tvenc_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = drm_connector_cleanup,
 	.reset = drm_atomic_helper_connector_reset,
diff --git a/drivers/gpu/drm/zte/zx_vga.c b/drivers/gpu/drm/zte/zx_vga.c
index 1e0811f775cb..3e7e33cd3dfa 100644
--- a/drivers/gpu/drm/zte/zx_vga.c
+++ b/drivers/gpu/drm/zte/zx_vga.c
@@ -138,7 +138,6 @@ zx_vga_connector_detect(struct drm_connector *connector, bool force)
 }
 
 static const struct drm_connector_funcs zx_vga_connector_funcs = {
-	.dpms = drm_atomic_helper_connector_dpms,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.detect = zx_vga_connector_detect,
 	.destroy = drm_connector_cleanup,
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index 619089a027ec..d2b56cc657e9 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -136,8 +136,6 @@ int drm_atomic_helper_page_flip_target(
 				uint32_t flags,
 				uint32_t target,
 				struct drm_modeset_acquire_ctx *ctx);
-int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
-				     int mode);
 struct drm_encoder *
 drm_atomic_helper_best_encoder(struct drm_connector *connector);
 
-- 
2.13.3

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH 8/8] drm: Nuke drm_atomic_legacy_backoff
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
                   ` (6 preceding siblings ...)
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-07-25  8:01 ` Daniel Vetter
  2017-07-25  9:36   ` [Intel-gfx] " Maarten Lankhorst
  2017-07-25  8:44 ` ✓ Fi.CI.BAT: success for acquire ctx for everyone! Patchwork
  2017-07-25 12:05 ` ✗ Fi.CI.BAT: failure for acquire ctx for everyone! (rev3) Patchwork
  9 siblings, 1 reply; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  8:01 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter, DRI Development

Finally all users are gone!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/drm_atomic.c | 32 --------------------------------
 include/drm/drm_atomic.h     |  2 --
 2 files changed, 34 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 306fdca92abf..1b755439f591 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1588,38 +1588,6 @@ drm_atomic_add_affected_planes(struct drm_atomic_state *state,
 EXPORT_SYMBOL(drm_atomic_add_affected_planes);
 
 /**
- * drm_atomic_legacy_backoff - locking backoff for legacy ioctls
- * @state: atomic state
- *
- * This function should be used by legacy entry points which don't understand
- * -EDEADLK semantics. For simplicity this one will grab all modeset locks after
- * the slowpath completed.
- */
-void drm_atomic_legacy_backoff(struct drm_atomic_state *state)
-{
-	struct drm_device *dev = state->dev;
-	int ret;
-	bool global = false;
-
-	if (WARN_ON(dev->mode_config.acquire_ctx == state->acquire_ctx)) {
-		global = true;
-
-		dev->mode_config.acquire_ctx = NULL;
-	}
-
-retry:
-	drm_modeset_backoff(state->acquire_ctx);
-
-	ret = drm_modeset_lock_all_ctx(dev, state->acquire_ctx);
-	if (ret)
-		goto retry;
-
-	if (global)
-		dev->mode_config.acquire_ctx = state->acquire_ctx;
-}
-EXPORT_SYMBOL(drm_atomic_legacy_backoff);
-
-/**
  * drm_atomic_check_only - check whether a given config would work
  * @state: atomic configuration to check
  *
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index fccc09d5f2b3..066b8dac3978 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -545,8 +545,6 @@ int __must_check
 drm_atomic_add_affected_planes(struct drm_atomic_state *state,
 			       struct drm_crtc *crtc);
 
-void drm_atomic_legacy_backoff(struct drm_atomic_state *state);
-
 void
 drm_atomic_clean_old_fb(struct drm_device *dev, unsigned plane_mask, int ret);
 
-- 
2.13.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-07-25  8:04     ` Neil Armstrong
  -1 siblings, 0 replies; 84+ messages in thread
From: Neil Armstrong @ 2017-07-25  8:04 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, nouveau, DRI Development, virtualization,
	Tomi Valkeinen, linux-mediatek, Laurent Pinchart, Romain Perier,
	Daniel Vetter, Jyri Sarha, Marek Vasut, linux-renesas-soc,
	Kevin Hilman, Alexey Brodkin, Russell King, Krzysztof Kozlowski,
	Jonathan Hunter, Xinliang Liu, linux-rockchip, Chen-Yu Tsai,
	Kukjin Kim, Peter Senna Tschudin, Ben Skeggs



Le 25/07/2017 10:01, Daniel Vetter a écrit :
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Peter Senna Tschudin <peter.senna@collabora.com>
> Cc: Martin Donnelly <martin.donnelly@ge.com>
> Cc: Martyn Welch <martyn.welch@collabora.co.uk>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@freescale.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Carlo Caione <carlo@caione.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> Cc: Yakir Yang <kuankuan.y@gmail.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
> Cc: Romain Perier <romain.perier@collabora.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Hai Li <hali@codeaurora.org>
> Cc: "Noralf Trønnes" <noralf@tronnes.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-mediatek@lists.infradead.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-rockchip@lists.infradead.org
> Cc: linux-tegra@vger.kernel.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: zain wang <wzz@rock-chips.com>
> Cc: Baoyou Xie <baoyou.xie@linaro.org>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>  drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>  drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>  .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>  drivers/gpu/drm/bridge/panel.c                     |  1 -
>  drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>  drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>  drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>  drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
>  drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
>  drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
>  drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
>  drivers/gpu/drm/i915/intel_crt.c                   |  1 -
>  drivers/gpu/drm/i915/intel_dp.c                    |  1 -
>  drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
>  drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
>  drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
>  drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
>  drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
>  drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
>  drivers/gpu/drm/i915/intel_tv.c                    |  1 -
>  drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>  drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>  drivers/gpu/drm/imx/parallel-display.c             |  1 -
>  drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>  drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
>  drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>  drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
>  drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
>  drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
>  drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
>  drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
>  drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
>  drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>  drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
>  drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
>  drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
>  drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
>  drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>  drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>  drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
>  drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
>  drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
>  drivers/gpu/drm/tegra/dsi.c                        |  1 -
>  drivers/gpu/drm/tegra/hdmi.c                       |  1 -
>  drivers/gpu/drm/tegra/rgb.c                        |  1 -
>  drivers/gpu/drm/tegra/sor.c                        |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
>  drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
>  drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
>  drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
>  drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
>  drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>  drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>  drivers/gpu/drm/zte/zx_vga.c                       |  1 -
>  include/drm/drm_atomic_helper.h                    |  2 -
>  68 files changed, 3 insertions(+), 164 deletions(-)
> 

> diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> index 00775b397dba..79d95ca8a0c0 100644
> --- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
> +++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> @@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
>  }
>  
>  static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>  	.detect			= meson_cvbs_connector_detect,
>  	.fill_modes		= drm_helper_probe_single_connector_modes,
>  	.destroy		= meson_cvbs_connector_destroy,

For meson driver :
Acked-by: Neil Armstrong <narmstrong@baylibre.com>

For the rest:
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
  (?)
  (?)
@ 2017-07-25  8:04   ` Neil Armstrong
  -1 siblings, 0 replies; 84+ messages in thread
From: Neil Armstrong @ 2017-07-25  8:04 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, David Airlie, nouveau, DRI Development,
	virtualization, Andrzej Hajda, Tomi Valkeinen, linux-mediatek,
	Laurent Pinchart, Benjamin Gaignard, Romain Perier,
	Daniel Vetter, Jyri Sarha, Heiko Stuebner, Marek Vasut,
	linux-renesas-soc, Archit Taneja, Lars-Peter Clausen,
	Joonyoung Shim, Kevin Hilman, Alexey Brodkin, Russell King,
	Krzysztof



Le 25/07/2017 10:01, Daniel Vetter a écrit :
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Peter Senna Tschudin <peter.senna@collabora.com>
> Cc: Martin Donnelly <martin.donnelly@ge.com>
> Cc: Martyn Welch <martyn.welch@collabora.co.uk>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@freescale.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Carlo Caione <carlo@caione.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> Cc: Yakir Yang <kuankuan.y@gmail.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
> Cc: Romain Perier <romain.perier@collabora.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Hai Li <hali@codeaurora.org>
> Cc: "Noralf Trønnes" <noralf@tronnes.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-mediatek@lists.infradead.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-rockchip@lists.infradead.org
> Cc: linux-tegra@vger.kernel.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: zain wang <wzz@rock-chips.com>
> Cc: Baoyou Xie <baoyou.xie@linaro.org>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>  drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>  drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>  .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>  drivers/gpu/drm/bridge/panel.c                     |  1 -
>  drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>  drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>  drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>  drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
>  drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
>  drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
>  drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
>  drivers/gpu/drm/i915/intel_crt.c                   |  1 -
>  drivers/gpu/drm/i915/intel_dp.c                    |  1 -
>  drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
>  drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
>  drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
>  drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
>  drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
>  drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
>  drivers/gpu/drm/i915/intel_tv.c                    |  1 -
>  drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>  drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>  drivers/gpu/drm/imx/parallel-display.c             |  1 -
>  drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>  drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
>  drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>  drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
>  drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
>  drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
>  drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
>  drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
>  drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
>  drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>  drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
>  drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
>  drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
>  drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
>  drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>  drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>  drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
>  drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
>  drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
>  drivers/gpu/drm/tegra/dsi.c                        |  1 -
>  drivers/gpu/drm/tegra/hdmi.c                       |  1 -
>  drivers/gpu/drm/tegra/rgb.c                        |  1 -
>  drivers/gpu/drm/tegra/sor.c                        |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
>  drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
>  drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
>  drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
>  drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
>  drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>  drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>  drivers/gpu/drm/zte/zx_vga.c                       |  1 -
>  include/drm/drm_atomic_helper.h                    |  2 -
>  68 files changed, 3 insertions(+), 164 deletions(-)
> 

> diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> index 00775b397dba..79d95ca8a0c0 100644
> --- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
> +++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> @@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
>  }
>  
>  static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>  	.detect			= meson_cvbs_connector_detect,
>  	.fill_modes		= drm_helper_probe_single_connector_modes,
>  	.destroy		= meson_cvbs_connector_destroy,

For meson driver :
Acked-by: Neil Armstrong <narmstrong@baylibre.com>

For the rest:
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-07-25  8:04     ` Neil Armstrong
  0 siblings, 0 replies; 84+ messages in thread
From: Neil Armstrong @ 2017-07-25  8:04 UTC (permalink / raw)
  To: linus-amlogic



Le 25/07/2017 10:01, Daniel Vetter a ?crit :
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Peter Senna Tschudin <peter.senna@collabora.com>
> Cc: Martin Donnelly <martin.donnelly@ge.com>
> Cc: Martyn Welch <martyn.welch@collabora.co.uk>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@freescale.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Carlo Caione <carlo@caione.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> Cc: Yakir Yang <kuankuan.y@gmail.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
> Cc: Romain Perier <romain.perier@collabora.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Hai Li <hali@codeaurora.org>
> Cc: "Noralf Tr?nnes" <noralf@tronnes.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-samsung-soc at vger.kernel.org
> Cc: intel-gfx at lists.freedesktop.org
> Cc: linux-mediatek at lists.infradead.org
> Cc: linux-amlogic at lists.infradead.org
> Cc: nouveau at lists.freedesktop.org
> Cc: linux-renesas-soc at vger.kernel.org
> Cc: linux-rockchip at lists.infradead.org
> Cc: linux-tegra at vger.kernel.org
> Cc: virtualization at lists.linux-foundation.org
> Cc: zain wang <wzz@rock-chips.com>
> Cc: Baoyou Xie <baoyou.xie@linaro.org>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>  drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>  drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>  .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>  drivers/gpu/drm/bridge/panel.c                     |  1 -
>  drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>  drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>  drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>  drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
>  drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
>  drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
>  drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
>  drivers/gpu/drm/i915/intel_crt.c                   |  1 -
>  drivers/gpu/drm/i915/intel_dp.c                    |  1 -
>  drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
>  drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
>  drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
>  drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
>  drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
>  drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
>  drivers/gpu/drm/i915/intel_tv.c                    |  1 -
>  drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>  drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>  drivers/gpu/drm/imx/parallel-display.c             |  1 -
>  drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>  drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
>  drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>  drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
>  drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
>  drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
>  drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
>  drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
>  drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
>  drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>  drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
>  drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
>  drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
>  drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
>  drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>  drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>  drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
>  drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
>  drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
>  drivers/gpu/drm/tegra/dsi.c                        |  1 -
>  drivers/gpu/drm/tegra/hdmi.c                       |  1 -
>  drivers/gpu/drm/tegra/rgb.c                        |  1 -
>  drivers/gpu/drm/tegra/sor.c                        |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
>  drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
>  drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
>  drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
>  drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
>  drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>  drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>  drivers/gpu/drm/zte/zx_vga.c                       |  1 -
>  include/drm/drm_atomic_helper.h                    |  2 -
>  68 files changed, 3 insertions(+), 164 deletions(-)
> 

> diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> index 00775b397dba..79d95ca8a0c0 100644
> --- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
> +++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> @@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
>  }
>  
>  static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>  	.detect			= meson_cvbs_connector_detect,
>  	.fill_modes		= drm_helper_probe_single_connector_modes,
>  	.destroy		= meson_cvbs_connector_destroy,

For meson driver :
Acked-by: Neil Armstrong <narmstrong@baylibre.com>

For the rest:
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 2/8] drm: Don't update property values for atomic drivers
  2017-07-25  8:01 ` [PATCH 2/8] drm: Don't update property values for atomic drivers Daniel Vetter
@ 2017-07-25  8:32   ` Maarten Lankhorst
  2017-07-25 12:01   ` [PATCH] " Daniel Vetter
  2017-08-11 22:20   ` [PATCH 2/8] " Laurent Pinchart
  2 siblings, 0 replies; 84+ messages in thread
From: Maarten Lankhorst @ 2017-07-25  8:32 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development; +Cc: Daniel Vetter, DRI Development

Op 25-07-17 om 10:01 schreef Daniel Vetter:
> Atomic drivers only use the property value store for immutable (i.e.
> can't be set by userspace, but the kernel can still adjust it)
> properties. The only tricky part is the removal of the update in
> drm_atomic_helper_update_legacy_modeset_state().
>
> This was added in
>
> commit 8c10342cb48f3140d9abeadcfd2fa6625d447282 (tag: topic/drm-misc-2015-07-28)
> Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Date:   Mon Jul 27 13:24:29 2015 +0200
>
>     drm/atomic: Update legacy DPMS state during modesets, v3.
>
> by copying it from the i915 code, where it was originally added in
>
> commit 68d3472047a572936551f8ff0b6f4016c5a1fdef
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date:   Thu Sep 6 22:08:35 2012 +0200
>
>     drm/i915: update dpms property in set_mode
>
> for the legacy modeset code. The reason we needed this hack was that
> i915 didn't yet set DRIVER_ATOMIC, and we checked for that instead of
> the newer-ish drm_drv_uses_atomic_modeset(), which avoids such
> troubles. With the correct feature checks this isn't needed anymore at
> all.
>
> Also make sure that drivers don't accidentally get this wrong by
> making the exported version of drm_object_property_get_value() only
> work for legacy drivers. Only gma500 uses it anyway.
>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/drm_atomic_helper.c |  4 ---
>  drivers/gpu/drm/drm_connector.c     |  3 +--
>  drivers/gpu/drm/drm_crtc.c          |  2 +-
>  drivers/gpu/drm/drm_mode_object.c   | 49 +++++++++++++++++++++++--------------
>  drivers/gpu/drm/drm_plane.c         |  2 +-
>  5 files changed, 33 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 7582bbc5decc..4a960c741e35 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -921,16 +921,12 @@ drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
>  		crtc = new_conn_state->crtc;
>  		if ((!crtc && old_conn_state->crtc) ||
>  		    (crtc && drm_atomic_crtc_needs_modeset(crtc->state))) {
> -			struct drm_property *dpms_prop =
> -				dev->mode_config.dpms_property;
>  			int mode = DRM_MODE_DPMS_OFF;
>  
>  			if (crtc && crtc->state->active)
>  				mode = DRM_MODE_DPMS_ON;
>  
>  			connector->dpms = mode;
> -			drm_object_property_set_value(&connector->base,
> -						      dpms_prop, mode);
>  		}
>  	}
>  
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index 8072e6e4c62c..349104eadefe 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -1225,8 +1225,7 @@ int drm_mode_connector_set_obj_prop(struct drm_mode_object *obj,
>  	} else if (connector->funcs->set_property)
>  		ret = connector->funcs->set_property(connector, property, value);
>  
> -	/* store the property value if successful */
> -	if (!ret)
> +	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
>  		drm_object_property_set_value(&connector->base, property, value);
>  	return ret;
>  }
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 5af25ce5bf7c..7d4fcdd34342 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -736,7 +736,7 @@ int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj,
>  
>  	if (crtc->funcs->set_property)
>  		ret = crtc->funcs->set_property(crtc, property, value);
> -	if (!ret)
> +	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
>  		drm_object_property_set_value(obj, property, value);
You've inverted the checks here for connector and crtc. :)

Otherwise looks sane, fix this and you can add my r-b.

On second thought, as penance you should add kms_properties to the fast-feedback testlist. ;)
>  	return ret;
> diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
> index da9a9adbcc98..92743a796bf0 100644
> --- a/drivers/gpu/drm/drm_mode_object.c
> +++ b/drivers/gpu/drm/drm_mode_object.c
> @@ -233,6 +233,9 @@ int drm_object_property_set_value(struct drm_mode_object *obj,
>  {
>  	int i;
>  
> +	WARN_ON(drm_drv_uses_atomic_modeset(property->dev) &&
> +		!(property->flags & DRM_MODE_PROP_IMMUTABLE));
> +
>  	for (i = 0; i < obj->properties->count; i++) {
>  		if (obj->properties->properties[i] == property) {
>  			obj->properties->values[i] = val;
> @@ -244,24 +247,7 @@ int drm_object_property_set_value(struct drm_mode_object *obj,
>  }
>  EXPORT_SYMBOL(drm_object_property_set_value);
>  
> -/**
> - * drm_object_property_get_value - retrieve the value of a property
> - * @obj: drm mode object to get property value from
> - * @property: property to retrieve
> - * @val: storage for the property value
> - *
> - * This function retrieves the softare state of the given property for the given
> - * property. Since there is no driver callback to retrieve the current property
> - * value this might be out of sync with the hardware, depending upon the driver
> - * and property.
> - *
> - * Atomic drivers should never call this function directly, the core will read
> - * out property values through the various ->atomic_get_property callbacks.
> - *
> - * Returns:
> - * Zero on success, error code on failure.
> - */
> -int drm_object_property_get_value(struct drm_mode_object *obj,
> +int __drm_object_property_get_value(struct drm_mode_object *obj,
>  				  struct drm_property *property, uint64_t *val)
>  {
>  	int i;
> @@ -284,6 +270,31 @@ int drm_object_property_get_value(struct drm_mode_object *obj,
>  
>  	return -EINVAL;
>  }
> +
> +/**
> + * drm_object_property_get_value - retrieve the value of a property
> + * @obj: drm mode object to get property value from
> + * @property: property to retrieve
> + * @val: storage for the property value
> + *
> + * This function retrieves the softare state of the given property for the given
> + * property. Since there is no driver callback to retrieve the current property
> + * value this might be out of sync with the hardware, depending upon the driver
> + * and property.
> + *
> + * Atomic drivers should never call this function directly, the core will read
> + * out property values through the various ->atomic_get_property callbacks.
> + *
> + * Returns:
> + * Zero on success, error code on failure.
> + */
> +int drm_object_property_get_value(struct drm_mode_object *obj,
> +				  struct drm_property *property, uint64_t *val)
> +{
> +	WARN_ON(drm_drv_uses_atomic_modeset(property->dev));
> +
> +	return __drm_object_property_get_value(obj, property, val);
> +}
>  EXPORT_SYMBOL(drm_object_property_get_value);
>  
>  /* helper for getconnector and getproperties ioctls */
> @@ -302,7 +313,7 @@ int drm_mode_object_get_properties(struct drm_mode_object *obj, bool atomic,
>  			continue;
>  
>  		if (*arg_count_props > count) {
> -			ret = drm_object_property_get_value(obj, prop, &val);
> +			ret = __drm_object_property_get_value(obj, prop, &val);
>  			if (ret)
>  				return ret;
>  
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 5dc8c4350602..b4ffd0455200 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -330,7 +330,7 @@ int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
>  
>  	if (plane->funcs->set_property)
>  		ret = plane->funcs->set_property(plane, property, value);
> -	if (!ret)
> +	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
>  		drm_object_property_set_value(obj, property, value);
>  
>  	return ret;


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* ✓ Fi.CI.BAT: success for acquire ctx for everyone!
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
                   ` (7 preceding siblings ...)
  2017-07-25  8:01 ` [PATCH 8/8] drm: Nuke drm_atomic_legacy_backoff Daniel Vetter
@ 2017-07-25  8:44 ` Patchwork
  2017-07-25 12:05 ` ✗ Fi.CI.BAT: failure for acquire ctx for everyone! (rev3) Patchwork
  9 siblings, 0 replies; 84+ messages in thread
From: Patchwork @ 2017-07-25  8:44 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

== Series Details ==

Series: acquire ctx for everyone!
URL   : https://patchwork.freedesktop.org/series/27835/
State : success

== Summary ==

Series 27835v1 acquire ctx for everyone!
https://patchwork.freedesktop.org/api/1.0/series/27835/revisions/1/mbox/

Test kms_cursor_legacy:
        Subgroup basic-busy-flip-before-cursor-atomic:
                fail       -> PASS       (fi-snb-2600) fdo#100215
Test kms_flip:
        Subgroup basic-flip-vs-modeset:
                pass       -> SKIP       (fi-skl-x1585l) fdo#101781
Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> DMESG-WARN (fi-pnv-d510) fdo#101597
        Subgroup suspend-read-crc-pipe-b:
                pass       -> DMESG-WARN (fi-byt-j1900) fdo#101705

fdo#100215 https://bugs.freedesktop.org/show_bug.cgi?id=100215
fdo#101781 https://bugs.freedesktop.org/show_bug.cgi?id=101781
fdo#101597 https://bugs.freedesktop.org/show_bug.cgi?id=101597
fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705

fi-bdw-5557u     total:280  pass:269  dwarn:0   dfail:0   fail:0   skip:11  time:444s
fi-bdw-gvtdvm    total:280  pass:265  dwarn:1   dfail:0   fail:0   skip:14  time:432s
fi-blb-e6850     total:280  pass:225  dwarn:1   dfail:0   fail:0   skip:54  time:360s
fi-bsw-n3050     total:280  pass:244  dwarn:0   dfail:0   fail:0   skip:36  time:549s
fi-bxt-j4205     total:280  pass:261  dwarn:0   dfail:0   fail:0   skip:19  time:514s
fi-byt-j1900     total:280  pass:255  dwarn:1   dfail:0   fail:0   skip:24  time:496s
fi-byt-n2820     total:280  pass:251  dwarn:1   dfail:0   fail:0   skip:28  time:491s
fi-glk-2a        total:280  pass:261  dwarn:0   dfail:0   fail:0   skip:19  time:605s
fi-hsw-4770      total:280  pass:264  dwarn:0   dfail:0   fail:0   skip:16  time:439s
fi-hsw-4770r     total:280  pass:264  dwarn:0   dfail:0   fail:0   skip:16  time:419s
fi-ilk-650       total:280  pass:230  dwarn:0   dfail:0   fail:0   skip:50  time:411s
fi-ivb-3520m     total:280  pass:262  dwarn:0   dfail:0   fail:0   skip:18  time:504s
fi-ivb-3770      total:280  pass:262  dwarn:0   dfail:0   fail:0   skip:18  time:481s
fi-kbl-7500u     total:280  pass:262  dwarn:0   dfail:0   fail:0   skip:18  time:467s
fi-kbl-7560u     total:280  pass:270  dwarn:0   dfail:0   fail:0   skip:10  time:574s
fi-kbl-r         total:280  pass:262  dwarn:0   dfail:0   fail:0   skip:18  time:583s
fi-pnv-d510      total:280  pass:222  dwarn:3   dfail:0   fail:0   skip:55  time:570s
fi-skl-6260u     total:280  pass:270  dwarn:0   dfail:0   fail:0   skip:10  time:459s
fi-skl-6700hq    total:280  pass:263  dwarn:0   dfail:0   fail:0   skip:17  time:583s
fi-skl-6700k     total:280  pass:262  dwarn:0   dfail:0   fail:0   skip:18  time:469s
fi-skl-6770hq    total:280  pass:270  dwarn:0   dfail:0   fail:0   skip:10  time:475s
fi-skl-gvtdvm    total:280  pass:266  dwarn:1   dfail:0   fail:0   skip:13  time:435s
fi-skl-x1585l    total:280  pass:269  dwarn:0   dfail:0   fail:0   skip:11  time:480s
fi-snb-2520m     total:280  pass:252  dwarn:0   dfail:0   fail:0   skip:28  time:542s
fi-snb-2600      total:280  pass:251  dwarn:0   dfail:0   fail:0   skip:29  time:408s

9e377e5fc2f8360c01787ebfe16e1bea778b4d9d drm-tip: 2017y-07m-25d-07h-06m-30s UTC integration manifest
437076108ca9 drm: Nuke drm_atomic_legacy_backoff
0c7efbd134b1 drm: Nuke drm_atomic_helper_connector_dpms
8533fb10cc2b drm: Nuke drm_atomic_helper_connector_set_property
523d704afcad drm: Nuke drm_atomic_helper_plane_set_property
3282548927d8 drm: Nuke drm_atomic_helper_crtc_set_property
9d112cf69346 drm: Handle properties in the core for atomic drivers
f0dafa2b3c62 drm: Don't update property values for atomic drivers
7ffb9abae902 drm/omap: Simplify the rotation-on-crtc hack

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5270/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
@ 2017-07-25  8:47   ` Maarten Lankhorst
  2017-07-25  9:24     ` [Intel-gfx] " Daniel Vetter
  2017-07-31 10:54   ` [PATCH] drm/omap: Rework " Daniel Vetter
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 84+ messages in thread
From: Maarten Lankhorst @ 2017-07-25  8:47 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Daniel Vetter, Tomi Valkeinen, Laurent Pinchart, DRI Development

Op 25-07-17 om 10:01 schreef Daniel Vetter:
> I want/need to rework the core property handling, and this hack is
> getting in the way. But since it's a non-standard propety only used by
> legacy userspace we know that this will only every be called from
> ioctl code. And never on some other free-standing state struct, where
> this old hack wouldn't work either.
>
> v2: don't forget zorder and get_property!
>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/omapdrm/omap_crtc.c | 64 ++++++++++++++++---------------------
>  1 file changed, 28 insertions(+), 36 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
> index 14e8a7738b06..efa525442e7d 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -498,39 +498,30 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
>  	spin_unlock_irq(&crtc->dev->event_lock);
>  }
>  
> -static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
> -	struct drm_property *property)
> -{
> -	struct drm_device *dev = crtc->dev;
> -	struct omap_drm_private *priv = dev->dev_private;
> -
> -	return property == priv->zorder_prop ||
> -		property == crtc->primary->rotation_property;
> -}
> -
>  static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
>  					 struct drm_crtc_state *state,
>  					 struct drm_property *property,
>  					 uint64_t val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		struct drm_plane_state *plane_state;
> -		struct drm_plane *plane = crtc->primary;
> -
> -		/*
> -		 * Delegate property set to the primary plane. Get the plane
> -		 * state and set the property directly.
> -		 */
> -
> -		plane_state = drm_atomic_get_plane_state(state->state, plane);
> -		if (IS_ERR(plane_state))
> -			return PTR_ERR(plane_state);
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +	struct drm_plane_state *plane_state;
>  
> -		return drm_atomic_plane_set_property(plane, plane_state,
> -				property, val);
> -	}
> +	/*
> +	 * Delegate property set to the primary plane. Get the plane
> +	 * state and set the property directly.
> +	 */
> +	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
> +	if (IS_ERR(plane_state))
> +		return PTR_ERR(plane_state);
> +
> +	if (property == crtc->primary->rotation_property)
> +		plane_state->rotation = val;
> +	else if (property == priv->zorder_prop)
> +		plane_state->zpos = val;
> +	else
> +		return -EINVAL;
>  
> -	return -EINVAL;
> +	return 0;
>  }
>  
>  static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
> @@ -538,16 +529,17 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
>  					 struct drm_property *property,
>  					 uint64_t *val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		/*
> -		 * Delegate property get to the primary plane. The
> -		 * drm_atomic_plane_get_property() function isn't exported, but
> -		 * can be called through drm_object_property_get_value() as that
> -		 * will call drm_atomic_get_property() for atomic drivers.
> -		 */
> -		return drm_object_property_get_value(&crtc->primary->base,
> -				property, val);
> -	}
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +
> +	/*
> +	 * Remap to the plane rotation/zorder property. We can peek at the plane
> +	 * state directly since holding the crtc locks gives you a read-lock on
> +	 * the plane state.
> +	 */
> +	if (property == crtc->primary->rotation_property)
> +		return crtc->primary->state->rotation;
> +	else if (property == priv->zorder_prop)
> +		return crtc->primary->state->zpos;
>  
>  	return -EINVAL;
>  }

acquire_ctx for crtc's getprop too then?

The comment about read lock is only valid when the plane is bound to the crtc. In general this is not always the case.
You can only peak at plane->state when crtc->state->plane_mask & BIT(drm_plane_index(plane)) is true.

I think we might need -EDEADLK handling for getprop then, even though it's not optimal. :(

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-07-25  8:59     ` Philipp Zabel
  -1 siblings, 0 replies; 84+ messages in thread
From: Philipp Zabel @ 2017-07-25  8:59 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Martyn Welch, Neil Armstrong, nouveau, DRI Development,
	virtualization, Tomi Valkeinen, linux-mediatek, Laurent Pinchart,
	Romain Perier, Daniel Vetter, Jyri Sarha, Marek Vasut,
	linux-renesas-soc, Kevin Hilman, Alexey Brodkin, Russell King,
	Krzysztof Kozlowski, Jonathan Hunter, Xinliang Liu,
	linux-rockchip, Chen-Yu Tsai, Kukjin Kim, Peter Senna Tschudin

On Tue, 2017-07-25 at 10:01 +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
[...]
>  drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>  drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>  drivers/gpu/drm/imx/parallel-display.c             |  1 -
>  drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>  drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -

Acked-by: Philipp Zabel <p.zabel@pengutronix.de>

regards
Philipp

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (3 preceding siblings ...)
  (?)
@ 2017-07-25  8:59   ` Philipp Zabel
  -1 siblings, 0 replies; 84+ messages in thread
From: Philipp Zabel @ 2017-07-25  8:59 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Martyn Welch, Neil Armstrong, David Airlie, nouveau,
	DRI Development, virtualization, Andrzej Hajda, Tomi Valkeinen,
	linux-mediatek, Laurent Pinchart, Benjamin Gaignard,
	Romain Perier, Daniel Vetter, Jyri Sarha, Heiko Stuebner,
	Marek Vasut, linux-renesas-soc, Archit Taneja,
	Lars-Peter Clausen, Joonyoung Shim, Kevin Hilman, Alexey Brodkin,
	Russell

On Tue, 2017-07-25 at 10:01 +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
[...]
>  drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>  drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>  drivers/gpu/drm/imx/parallel-display.c             |  1 -
>  drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>  drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -

Acked-by: Philipp Zabel <p.zabel@pengutronix.de>

regards
Philipp

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-07-25  8:59     ` Philipp Zabel
  0 siblings, 0 replies; 84+ messages in thread
From: Philipp Zabel @ 2017-07-25  8:59 UTC (permalink / raw)
  To: linus-amlogic

On Tue, 2017-07-25 at 10:01 +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
[...]
>  drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>  drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>  drivers/gpu/drm/imx/parallel-display.c             |  1 -
>  drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>  drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -

Acked-by: Philipp Zabel <p.zabel@pengutronix.de>

regards
Philipp

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [Intel-gfx] [PATCH 6/8] drm: Nuke drm_atomic_helper_connector_set_property
       [not found]     ` <20170725080122.20548-7-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
@ 2017-07-25  9:23       ` Maarten Lankhorst
  2017-07-25  9:26         ` Daniel Vetter
  0 siblings, 1 reply; 84+ messages in thread
From: Maarten Lankhorst @ 2017-07-25  9:23 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: David Airlie, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	DRI Development, Ben Skeggs, Benjamin Gaignard, Daniel Vetter,
	Vincent Abriou

Op 25-07-17 om 10:01 schreef Daniel Vetter:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_connector_set_property.
>
> The only special case is nouveau which used one function for both
> pre-nv50 legacy modeset code and post-nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
>
> What is rather strange here is how few drivers set this up, I suspect
> the earlier patch to handle properties in the core did end up fixing a
> pile of possible issues.
Legacy drivers didn't always hook it up either, probably why. :)
No use hooking it up in legacy world if you didn't expose a property.

But yeah, good to fix this.
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> ---
>  drivers/gpu/drm/drm_atomic.c                |  3 +-
>  drivers/gpu/drm/drm_atomic_helper.c         | 55 -----------------------------
>  drivers/gpu/drm/i915/intel_crt.c            |  1 -
>  drivers/gpu/drm/i915/intel_dp.c             |  1 -
>  drivers/gpu/drm/i915/intel_dp_mst.c         |  1 -
>  drivers/gpu/drm/i915/intel_dsi.c            |  1 -
>  drivers/gpu/drm/i915/intel_dvo.c            |  1 -
>  drivers/gpu/drm/i915/intel_hdmi.c           |  1 -
>  drivers/gpu/drm/i915/intel_lvds.c           |  1 -
>  drivers/gpu/drm/i915/intel_sdvo.c           |  1 -
>  drivers/gpu/drm/i915/intel_tv.c             |  1 -
>  drivers/gpu/drm/nouveau/nouveau_connector.c |  3 --
>  drivers/gpu/drm/nouveau/nv50_display.c      |  1 -
>  drivers/gpu/drm/sti/sti_hdmi.c              |  1 -
>  drivers/gpu/drm/vc4/vc4_vec.c               |  1 -
>  include/drm/drm_atomic.h                    |  3 --
>  include/drm/drm_atomic_helper.h             |  3 --
>  17 files changed, 1 insertion(+), 78 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 395438a7a576..306fdca92abf 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1144,7 +1144,7 @@ EXPORT_SYMBOL(drm_atomic_get_connector_state);
>   * RETURNS:
>   * Zero on success, error code on failure
>   */
> -int drm_atomic_connector_set_property(struct drm_connector *connector,
> +static int drm_atomic_connector_set_property(struct drm_connector *connector,
>  		struct drm_connector_state *state, struct drm_property *property,
>  		uint64_t val)
>  {
> @@ -1211,7 +1211,6 @@ int drm_atomic_connector_set_property(struct drm_connector *connector,
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL(drm_atomic_connector_set_property);
>  
>  static void drm_atomic_connector_print_state(struct drm_printer *p,
>  		const struct drm_connector_state *state)
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 0482e39a7889..1ca0dcca6230 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2967,61 +2967,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>  }
>  EXPORT_SYMBOL(drm_atomic_helper_resume);
>  
> -/**
> - * drm_atomic_helper_connector_set_property - helper for connector properties
> - * @connector: DRM connector
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default connector set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_connector_set_property(struct drm_connector *connector,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_connector_state *connector_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(connector->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = connector->dev->mode_config.acquire_ctx;
> -retry:
> -	connector_state = drm_atomic_get_connector_state(state, connector);
> -	if (IS_ERR(connector_state)) {
> -		ret = PTR_ERR(connector_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_connector_set_property(connector, connector_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_connector_set_property);
> -
>  static int page_flip_common(struct drm_atomic_state *state,
>  			    struct drm_crtc *crtc,
>  			    struct drm_framebuffer *fb,
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index 84a1f5e85153..84c3a6dc7c2a 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -807,7 +807,6 @@ static const struct drm_connector_funcs intel_crt_connector_funcs = {
>  	.late_register = intel_connector_register,
>  	.early_unregister = intel_connector_unregister,
>  	.destroy = intel_crt_destroy,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>  	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>  };
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 2d42d09428c9..19b082ea57ef 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5010,7 +5010,6 @@ static const struct drm_connector_funcs intel_dp_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.force = intel_dp_force,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_get_property = intel_digital_connector_atomic_get_property,
>  	.atomic_set_property = intel_digital_connector_atomic_set_property,
>  	.late_register = intel_dp_connector_register,
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index e4ea968b1d6b..59a6dfd48ed4 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -349,7 +349,6 @@ static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.detect = intel_dp_mst_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.late_register = intel_connector_register,
>  	.early_unregister = intel_connector_unregister,
>  	.destroy = intel_dp_mst_connector_destroy,
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 50ec836da8b1..375e7cfcf207 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -1658,7 +1658,6 @@ static const struct drm_connector_funcs intel_dsi_connector_funcs = {
>  	.early_unregister = intel_connector_unregister,
>  	.destroy = intel_dsi_connector_destroy,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_get_property = intel_digital_connector_atomic_get_property,
>  	.atomic_set_property = intel_digital_connector_atomic_set_property,
>  	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> index c1544a53095d..6b1970542911 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -350,7 +350,6 @@ static const struct drm_connector_funcs intel_dvo_connector_funcs = {
>  	.early_unregister = intel_connector_unregister,
>  	.destroy = intel_dvo_destroy,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>  	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>  };
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 5609976539bf..3074190b9455 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1765,7 +1765,6 @@ static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
>  	.detect = intel_hdmi_detect,
>  	.force = intel_hdmi_force,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_get_property = intel_digital_connector_atomic_get_property,
>  	.atomic_set_property = intel_digital_connector_atomic_set_property,
>  	.late_register = intel_connector_register,
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 6fe5d7c3bc23..6579299f5d00 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -598,7 +598,6 @@ static const struct drm_connector_funcs intel_lvds_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.detect = intel_lvds_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_get_property = intel_digital_connector_atomic_get_property,
>  	.atomic_set_property = intel_digital_connector_atomic_set_property,
>  	.late_register = intel_connector_register,
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index e58a47db9a9d..a8eee1984ddf 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -2196,7 +2196,6 @@ static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.detect = intel_sdvo_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_get_property = intel_sdvo_connector_atomic_get_property,
>  	.atomic_set_property = intel_sdvo_connector_atomic_set_property,
>  	.late_register = intel_sdvo_connector_register,
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index 784df024e230..e4ef2919b682 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1411,7 +1411,6 @@ static const struct drm_connector_funcs intel_tv_connector_funcs = {
>  	.late_register = intel_connector_register,
>  	.early_unregister = intel_connector_unregister,
>  	.destroy = intel_tv_destroy,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>  	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
> index dab78c660dd6..2468e81918fd 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
> @@ -770,9 +770,6 @@ nouveau_connector_set_property(struct drm_connector *connector,
>  	struct drm_encoder *encoder = to_drm_encoder(nv_encoder);
>  	int ret;
>  
> -	if (drm_drv_uses_atomic_modeset(connector->dev))
> -		return drm_atomic_helper_connector_set_property(connector, property, value);
> -
>  	ret = connector->funcs->atomic_set_property(&nv_connector->base,
>  						    &asyc->state,
>  						    property, value);
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index e2029f05bf7b..80a96eb08bbf 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -3122,7 +3122,6 @@ nv50_mstc = {
>  	.reset = nouveau_conn_reset,
>  	.detect = nv50_mstc_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.destroy = nv50_mstc_destroy,
>  	.atomic_duplicate_state = nouveau_conn_atomic_duplicate_state,
>  	.atomic_destroy_state = nouveau_conn_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
> index dbc6a195d6f9..21f11dfae472 100644
> --- a/drivers/gpu/drm/sti/sti_hdmi.c
> +++ b/drivers/gpu/drm/sti/sti_hdmi.c
> @@ -1118,7 +1118,6 @@ static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
>  	.detect = sti_hdmi_connector_detect,
>  	.destroy = drm_connector_cleanup,
>  	.reset = drm_atomic_helper_connector_reset,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.atomic_set_property = sti_hdmi_connector_set_property,
>  	.atomic_get_property = sti_hdmi_connector_get_property,
>  	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
> index 09c1e05765fa..369fea5a13a1 100644
> --- a/drivers/gpu/drm/vc4/vc4_vec.c
> +++ b/drivers/gpu/drm/vc4/vc4_vec.c
> @@ -369,7 +369,6 @@ static const struct drm_connector_funcs vc4_vec_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.detect = vc4_vec_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.set_property = drm_atomic_helper_connector_set_property,
>  	.destroy = vc4_vec_connector_destroy,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 1f6a2c768e4b..fccc09d5f2b3 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -318,9 +318,6 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  struct drm_connector_state * __must_check
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			       struct drm_connector *connector);
> -int drm_atomic_connector_set_property(struct drm_connector *connector,
> -		struct drm_connector_state *state, struct drm_property *property,
> -		uint64_t val);
>  
>  void drm_atomic_private_obj_init(struct drm_private_obj *obj,
>  				 struct drm_private_state *state,
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index a62aeb816dd8..619089a027ec 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>  int drm_atomic_helper_resume(struct drm_device *dev,
>  			     struct drm_atomic_state *state);
>  
> -int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
> -					struct drm_property *property,
> -					uint64_t val);
>  int drm_atomic_helper_page_flip(struct drm_crtc *crtc,
>  				struct drm_framebuffer *fb,
>  				struct drm_pending_vblank_event *event,


_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack
  2017-07-25  8:47   ` Maarten Lankhorst
@ 2017-07-25  9:24     ` Daniel Vetter
  2017-07-31 11:48       ` Laurent Pinchart
  0 siblings, 1 reply; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  9:24 UTC (permalink / raw)
  To: Maarten Lankhorst
  Cc: Daniel Vetter, Intel Graphics Development, Tomi Valkeinen,
	Laurent Pinchart, DRI Development

On Tue, Jul 25, 2017 at 10:47 AM, Maarten Lankhorst
<maarten.lankhorst@linux.intel.com> wrote:
> Op 25-07-17 om 10:01 schreef Daniel Vetter:
>> I want/need to rework the core property handling, and this hack is
>> getting in the way. But since it's a non-standard propety only used by
>> legacy userspace we know that this will only every be called from
>> ioctl code. And never on some other free-standing state struct, where
>> this old hack wouldn't work either.
>>
>> v2: don't forget zorder and get_property!
>>
>> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>> ---
>>  drivers/gpu/drm/omapdrm/omap_crtc.c | 64 ++++++++++++++++---------------------
>>  1 file changed, 28 insertions(+), 36 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
>> index 14e8a7738b06..efa525442e7d 100644
>> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
>> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
>> @@ -498,39 +498,30 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
>>       spin_unlock_irq(&crtc->dev->event_lock);
>>  }
>>
>> -static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
>> -     struct drm_property *property)
>> -{
>> -     struct drm_device *dev = crtc->dev;
>> -     struct omap_drm_private *priv = dev->dev_private;
>> -
>> -     return property == priv->zorder_prop ||
>> -             property == crtc->primary->rotation_property;
>> -}
>> -
>>  static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
>>                                        struct drm_crtc_state *state,
>>                                        struct drm_property *property,
>>                                        uint64_t val)
>>  {
>> -     if (omap_crtc_is_plane_prop(crtc, property)) {
>> -             struct drm_plane_state *plane_state;
>> -             struct drm_plane *plane = crtc->primary;
>> -
>> -             /*
>> -              * Delegate property set to the primary plane. Get the plane
>> -              * state and set the property directly.
>> -              */
>> -
>> -             plane_state = drm_atomic_get_plane_state(state->state, plane);
>> -             if (IS_ERR(plane_state))
>> -                     return PTR_ERR(plane_state);
>> +     struct omap_drm_private *priv = crtc->dev->dev_private;
>> +     struct drm_plane_state *plane_state;
>>
>> -             return drm_atomic_plane_set_property(plane, plane_state,
>> -                             property, val);
>> -     }
>> +     /*
>> +      * Delegate property set to the primary plane. Get the plane
>> +      * state and set the property directly.
>> +      */
>> +     plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
>> +     if (IS_ERR(plane_state))
>> +             return PTR_ERR(plane_state);
>> +
>> +     if (property == crtc->primary->rotation_property)
>> +             plane_state->rotation = val;
>> +     else if (property == priv->zorder_prop)
>> +             plane_state->zpos = val;
>> +     else
>> +             return -EINVAL;
>>
>> -     return -EINVAL;
>> +     return 0;
>>  }
>>
>>  static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
>> @@ -538,16 +529,17 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
>>                                        struct drm_property *property,
>>                                        uint64_t *val)
>>  {
>> -     if (omap_crtc_is_plane_prop(crtc, property)) {
>> -             /*
>> -              * Delegate property get to the primary plane. The
>> -              * drm_atomic_plane_get_property() function isn't exported, but
>> -              * can be called through drm_object_property_get_value() as that
>> -              * will call drm_atomic_get_property() for atomic drivers.
>> -              */
>> -             return drm_object_property_get_value(&crtc->primary->base,
>> -                             property, val);
>> -     }
>> +     struct omap_drm_private *priv = crtc->dev->dev_private;
>> +
>> +     /*
>> +      * Remap to the plane rotation/zorder property. We can peek at the plane
>> +      * state directly since holding the crtc locks gives you a read-lock on
>> +      * the plane state.
>> +      */
>> +     if (property == crtc->primary->rotation_property)
>> +             return crtc->primary->state->rotation;
>> +     else if (property == priv->zorder_prop)
>> +             return crtc->primary->state->zpos;
>>
>>       return -EINVAL;
>>  }
>
> acquire_ctx for crtc's getprop too then?
>
> The comment about read lock is only valid when the plane is bound to the crtc. In general this is not always the case.
> You can only peak at plane->state when crtc->state->plane_mask & BIT(drm_plane_index(plane)) is true.
>
> I think we might need -EDEADLK handling for getprop then, even though it's not optimal. :(

Well both the old an new way only worked because we grab all the locks
unconditionally. And I'd really want to avoid get_prop being anything
but a simple lookup. Unfortuantely that breaks omapdrm, so no idea
what exactly to do here.

In a way adding properties without standardizing them across drivers
first was a really bad idea, because then we have disjoint sets of
uapi expectations, and there's just no way to make that work.

I guess one radical approach might be to make this the "standard", and
just redirect rotation from the CRTC to the primary plane.

Or omapdrm needs to duplicate the property properly, and update one if
the other is set. I think that's probably the most workable approach.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 6/8] drm: Nuke drm_atomic_helper_connector_set_property
  2017-07-25  9:23       ` [Intel-gfx] " Maarten Lankhorst
@ 2017-07-25  9:26         ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25  9:26 UTC (permalink / raw)
  To: Maarten Lankhorst
  Cc: David Airlie, Nouveau Dev, Intel Graphics Development,
	DRI Development, Ben Skeggs, Benjamin Gaignard, Daniel Vetter,
	Vincent Abriou

On Tue, Jul 25, 2017 at 11:23 AM, Maarten Lankhorst
<maarten@mblankhorst.nl> wrote:
> Op 25-07-17 om 10:01 schreef Daniel Vetter:
>> It's dead code, the core handles all this directly now. This also
>> allows us to unexport drm_atomic_helper_connector_set_property.
>>
>> The only special case is nouveau which used one function for both
>> pre-nv50 legacy modeset code and post-nv50 atomic world instead of 2
>> vtables. But amounts to exactly the same.
>>
>> What is rather strange here is how few drivers set this up, I suspect
>> the earlier patch to handle properties in the core did end up fixing a
>> pile of possible issues.
> Legacy drivers didn't always hook it up either, probably why. :)
> No use hooking it up in legacy world if you didn't expose a property.
>
> But yeah, good to fix this.

With atomic, everyone has properties ...
-Daniel

>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>> Cc: Daniel Vetter <daniel.vetter@intel.com>
>> Cc: Jani Nikula <jani.nikula@linux.intel.com>
>> Cc: Sean Paul <seanpaul@chromium.org>
>> Cc: David Airlie <airlied@linux.ie>
>> Cc: Ben Skeggs <bskeggs@redhat.com>
>> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
>> Cc: Vincent Abriou <vincent.abriou@st.com>
>> Cc: Eric Anholt <eric@anholt.net>
>> Cc: intel-gfx@lists.freedesktop.org
>> Cc: nouveau@lists.freedesktop.org
>> ---
>>  drivers/gpu/drm/drm_atomic.c                |  3 +-
>>  drivers/gpu/drm/drm_atomic_helper.c         | 55 -----------------------------
>>  drivers/gpu/drm/i915/intel_crt.c            |  1 -
>>  drivers/gpu/drm/i915/intel_dp.c             |  1 -
>>  drivers/gpu/drm/i915/intel_dp_mst.c         |  1 -
>>  drivers/gpu/drm/i915/intel_dsi.c            |  1 -
>>  drivers/gpu/drm/i915/intel_dvo.c            |  1 -
>>  drivers/gpu/drm/i915/intel_hdmi.c           |  1 -
>>  drivers/gpu/drm/i915/intel_lvds.c           |  1 -
>>  drivers/gpu/drm/i915/intel_sdvo.c           |  1 -
>>  drivers/gpu/drm/i915/intel_tv.c             |  1 -
>>  drivers/gpu/drm/nouveau/nouveau_connector.c |  3 --
>>  drivers/gpu/drm/nouveau/nv50_display.c      |  1 -
>>  drivers/gpu/drm/sti/sti_hdmi.c              |  1 -
>>  drivers/gpu/drm/vc4/vc4_vec.c               |  1 -
>>  include/drm/drm_atomic.h                    |  3 --
>>  include/drm/drm_atomic_helper.h             |  3 --
>>  17 files changed, 1 insertion(+), 78 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
>> index 395438a7a576..306fdca92abf 100644
>> --- a/drivers/gpu/drm/drm_atomic.c
>> +++ b/drivers/gpu/drm/drm_atomic.c
>> @@ -1144,7 +1144,7 @@ EXPORT_SYMBOL(drm_atomic_get_connector_state);
>>   * RETURNS:
>>   * Zero on success, error code on failure
>>   */
>> -int drm_atomic_connector_set_property(struct drm_connector *connector,
>> +static int drm_atomic_connector_set_property(struct drm_connector *connector,
>>               struct drm_connector_state *state, struct drm_property *property,
>>               uint64_t val)
>>  {
>> @@ -1211,7 +1211,6 @@ int drm_atomic_connector_set_property(struct drm_connector *connector,
>>
>>       return 0;
>>  }
>> -EXPORT_SYMBOL(drm_atomic_connector_set_property);
>>
>>  static void drm_atomic_connector_print_state(struct drm_printer *p,
>>               const struct drm_connector_state *state)
>> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
>> index 0482e39a7889..1ca0dcca6230 100644
>> --- a/drivers/gpu/drm/drm_atomic_helper.c
>> +++ b/drivers/gpu/drm/drm_atomic_helper.c
>> @@ -2967,61 +2967,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>>  }
>>  EXPORT_SYMBOL(drm_atomic_helper_resume);
>>
>> -/**
>> - * drm_atomic_helper_connector_set_property - helper for connector properties
>> - * @connector: DRM connector
>> - * @property: DRM property
>> - * @val: value of property
>> - *
>> - * Provides a default connector set_property handler using the atomic driver
>> - * interface.
>> - *
>> - * RETURNS:
>> - * Zero on success, error code on failure
>> - */
>> -int
>> -drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>> -                                 struct drm_property *property,
>> -                                 uint64_t val)
>> -{
>> -     struct drm_atomic_state *state;
>> -     struct drm_connector_state *connector_state;
>> -     int ret = 0;
>> -
>> -     state = drm_atomic_state_alloc(connector->dev);
>> -     if (!state)
>> -             return -ENOMEM;
>> -
>> -     /* ->set_property is always called with all locks held. */
>> -     state->acquire_ctx = connector->dev->mode_config.acquire_ctx;
>> -retry:
>> -     connector_state = drm_atomic_get_connector_state(state, connector);
>> -     if (IS_ERR(connector_state)) {
>> -             ret = PTR_ERR(connector_state);
>> -             goto fail;
>> -     }
>> -
>> -     ret = drm_atomic_connector_set_property(connector, connector_state,
>> -                     property, val);
>> -     if (ret)
>> -             goto fail;
>> -
>> -     ret = drm_atomic_commit(state);
>> -fail:
>> -     if (ret == -EDEADLK)
>> -             goto backoff;
>> -
>> -     drm_atomic_state_put(state);
>> -     return ret;
>> -
>> -backoff:
>> -     drm_atomic_state_clear(state);
>> -     drm_atomic_legacy_backoff(state);
>> -
>> -     goto retry;
>> -}
>> -EXPORT_SYMBOL(drm_atomic_helper_connector_set_property);
>> -
>>  static int page_flip_common(struct drm_atomic_state *state,
>>                           struct drm_crtc *crtc,
>>                           struct drm_framebuffer *fb,
>> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
>> index 84a1f5e85153..84c3a6dc7c2a 100644
>> --- a/drivers/gpu/drm/i915/intel_crt.c
>> +++ b/drivers/gpu/drm/i915/intel_crt.c
>> @@ -807,7 +807,6 @@ static const struct drm_connector_funcs intel_crt_connector_funcs = {
>>       .late_register = intel_connector_register,
>>       .early_unregister = intel_connector_unregister,
>>       .destroy = intel_crt_destroy,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>>       .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>>  };
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>> index 2d42d09428c9..19b082ea57ef 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -5010,7 +5010,6 @@ static const struct drm_connector_funcs intel_dp_connector_funcs = {
>>       .dpms = drm_atomic_helper_connector_dpms,
>>       .force = intel_dp_force,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_get_property = intel_digital_connector_atomic_get_property,
>>       .atomic_set_property = intel_digital_connector_atomic_set_property,
>>       .late_register = intel_dp_connector_register,
>> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
>> index e4ea968b1d6b..59a6dfd48ed4 100644
>> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
>> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
>> @@ -349,7 +349,6 @@ static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
>>       .dpms = drm_atomic_helper_connector_dpms,
>>       .detect = intel_dp_mst_detect,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .late_register = intel_connector_register,
>>       .early_unregister = intel_connector_unregister,
>>       .destroy = intel_dp_mst_connector_destroy,
>> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
>> index 50ec836da8b1..375e7cfcf207 100644
>> --- a/drivers/gpu/drm/i915/intel_dsi.c
>> +++ b/drivers/gpu/drm/i915/intel_dsi.c
>> @@ -1658,7 +1658,6 @@ static const struct drm_connector_funcs intel_dsi_connector_funcs = {
>>       .early_unregister = intel_connector_unregister,
>>       .destroy = intel_dsi_connector_destroy,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_get_property = intel_digital_connector_atomic_get_property,
>>       .atomic_set_property = intel_digital_connector_atomic_set_property,
>>       .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
>> index c1544a53095d..6b1970542911 100644
>> --- a/drivers/gpu/drm/i915/intel_dvo.c
>> +++ b/drivers/gpu/drm/i915/intel_dvo.c
>> @@ -350,7 +350,6 @@ static const struct drm_connector_funcs intel_dvo_connector_funcs = {
>>       .early_unregister = intel_connector_unregister,
>>       .destroy = intel_dvo_destroy,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>>       .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>>  };
>> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
>> index 5609976539bf..3074190b9455 100644
>> --- a/drivers/gpu/drm/i915/intel_hdmi.c
>> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
>> @@ -1765,7 +1765,6 @@ static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
>>       .detect = intel_hdmi_detect,
>>       .force = intel_hdmi_force,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_get_property = intel_digital_connector_atomic_get_property,
>>       .atomic_set_property = intel_digital_connector_atomic_set_property,
>>       .late_register = intel_connector_register,
>> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
>> index 6fe5d7c3bc23..6579299f5d00 100644
>> --- a/drivers/gpu/drm/i915/intel_lvds.c
>> +++ b/drivers/gpu/drm/i915/intel_lvds.c
>> @@ -598,7 +598,6 @@ static const struct drm_connector_funcs intel_lvds_connector_funcs = {
>>       .dpms = drm_atomic_helper_connector_dpms,
>>       .detect = intel_lvds_detect,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_get_property = intel_digital_connector_atomic_get_property,
>>       .atomic_set_property = intel_digital_connector_atomic_set_property,
>>       .late_register = intel_connector_register,
>> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
>> index e58a47db9a9d..a8eee1984ddf 100644
>> --- a/drivers/gpu/drm/i915/intel_sdvo.c
>> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
>> @@ -2196,7 +2196,6 @@ static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
>>       .dpms = drm_atomic_helper_connector_dpms,
>>       .detect = intel_sdvo_detect,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_get_property = intel_sdvo_connector_atomic_get_property,
>>       .atomic_set_property = intel_sdvo_connector_atomic_set_property,
>>       .late_register = intel_sdvo_connector_register,
>> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
>> index 784df024e230..e4ef2919b682 100644
>> --- a/drivers/gpu/drm/i915/intel_tv.c
>> +++ b/drivers/gpu/drm/i915/intel_tv.c
>> @@ -1411,7 +1411,6 @@ static const struct drm_connector_funcs intel_tv_connector_funcs = {
>>       .late_register = intel_connector_register,
>>       .early_unregister = intel_connector_unregister,
>>       .destroy = intel_tv_destroy,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>>       .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>>       .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
>> index dab78c660dd6..2468e81918fd 100644
>> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c
>> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
>> @@ -770,9 +770,6 @@ nouveau_connector_set_property(struct drm_connector *connector,
>>       struct drm_encoder *encoder = to_drm_encoder(nv_encoder);
>>       int ret;
>>
>> -     if (drm_drv_uses_atomic_modeset(connector->dev))
>> -             return drm_atomic_helper_connector_set_property(connector, property, value);
>> -
>>       ret = connector->funcs->atomic_set_property(&nv_connector->base,
>>                                                   &asyc->state,
>>                                                   property, value);
>> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
>> index e2029f05bf7b..80a96eb08bbf 100644
>> --- a/drivers/gpu/drm/nouveau/nv50_display.c
>> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
>> @@ -3122,7 +3122,6 @@ nv50_mstc = {
>>       .reset = nouveau_conn_reset,
>>       .detect = nv50_mstc_detect,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .destroy = nv50_mstc_destroy,
>>       .atomic_duplicate_state = nouveau_conn_atomic_duplicate_state,
>>       .atomic_destroy_state = nouveau_conn_atomic_destroy_state,
>> diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
>> index dbc6a195d6f9..21f11dfae472 100644
>> --- a/drivers/gpu/drm/sti/sti_hdmi.c
>> +++ b/drivers/gpu/drm/sti/sti_hdmi.c
>> @@ -1118,7 +1118,6 @@ static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
>>       .detect = sti_hdmi_connector_detect,
>>       .destroy = drm_connector_cleanup,
>>       .reset = drm_atomic_helper_connector_reset,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .atomic_set_property = sti_hdmi_connector_set_property,
>>       .atomic_get_property = sti_hdmi_connector_get_property,
>>       .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
>> index 09c1e05765fa..369fea5a13a1 100644
>> --- a/drivers/gpu/drm/vc4/vc4_vec.c
>> +++ b/drivers/gpu/drm/vc4/vc4_vec.c
>> @@ -369,7 +369,6 @@ static const struct drm_connector_funcs vc4_vec_connector_funcs = {
>>       .dpms = drm_atomic_helper_connector_dpms,
>>       .detect = vc4_vec_connector_detect,
>>       .fill_modes = drm_helper_probe_single_connector_modes,
>> -     .set_property = drm_atomic_helper_connector_set_property,
>>       .destroy = vc4_vec_connector_destroy,
>>       .reset = drm_atomic_helper_connector_reset,
>>       .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
>> index 1f6a2c768e4b..fccc09d5f2b3 100644
>> --- a/include/drm/drm_atomic.h
>> +++ b/include/drm/drm_atomic.h
>> @@ -318,9 +318,6 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>>  struct drm_connector_state * __must_check
>>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>>                              struct drm_connector *connector);
>> -int drm_atomic_connector_set_property(struct drm_connector *connector,
>> -             struct drm_connector_state *state, struct drm_property *property,
>> -             uint64_t val);
>>
>>  void drm_atomic_private_obj_init(struct drm_private_obj *obj,
>>                                struct drm_private_state *state,
>> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
>> index a62aeb816dd8..619089a027ec 100644
>> --- a/include/drm/drm_atomic_helper.h
>> +++ b/include/drm/drm_atomic_helper.h
>> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>>  int drm_atomic_helper_resume(struct drm_device *dev,
>>                            struct drm_atomic_state *state);
>>
>> -int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>> -                                     struct drm_property *property,
>> -                                     uint64_t val);
>>  int drm_atomic_helper_page_flip(struct drm_crtc *crtc,
>>                               struct drm_framebuffer *fb,
>>                               struct drm_pending_vblank_event *event,
>
>



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-07-25  9:30     ` Archit Taneja
  -1 siblings, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:30 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, nouveau, virtualization,
	Tomi Valkeinen, linux-mediatek, Laurent Pinchart, Romain Perier,
	Daniel Vetter, Jyri Sarha, Marek Vasut, linux-renesas-soc,
	Kevin Hilman, Alexey Brodkin, Russell King, Krzysztof Kozlowski,
	Jonathan Hunter, Xinliang Liu, linux-rockchip, Chen-Yu Tsai,
	Kukjin Kim, Peter Senna Tschudin, Ben Skeggs



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.

s/brideg/bridge

<snip>


> ---
>   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>   drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>   drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>   drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>   .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>   drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>   drivers/gpu/drm/bridge/panel.c                     |  1 -
>   drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>   drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>   drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>   drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -

For bridge changes:

Acked-by: Archit Taneja <architt@codeaurora.org>

Archit

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (5 preceding siblings ...)
  (?)
@ 2017-07-25  9:30   ` Archit Taneja
  -1 siblings, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:30 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, David Airlie, nouveau,
	Stefan Agner, virtualization, Andrzej Hajda, Tomi Valkeinen,
	linux-mediatek, Laurent Pinchart, Benjamin Gaignard,
	Romain Perier, Daniel Vetter, Jyri Sarha, Heiko Stuebner,
	Marek Vasut, linux-renesas-soc, Lars-Peter Clausen,
	Joonyoung Shim, Kevin Hilman, Alexey Brodkin, Russell King,
	Krzysztof Kozlowski



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.

s/brideg/bridge

<snip>


> ---
>   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>   drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>   drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>   drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>   .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>   drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>   drivers/gpu/drm/bridge/panel.c                     |  1 -
>   drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>   drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>   drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>   drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -

For bridge changes:

Acked-by: Archit Taneja <architt@codeaurora.org>

Archit

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-07-25  9:30     ` Archit Taneja
  0 siblings, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:30 UTC (permalink / raw)
  To: linus-amlogic



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.

s/brideg/bridge

<snip>


> ---
>   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>   drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>   drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>   drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>   .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>   drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>   drivers/gpu/drm/bridge/panel.c                     |  1 -
>   drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>   drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>   drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>   drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -

For bridge changes:

Acked-by: Archit Taneja <architt@codeaurora.org>

Archit

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [Intel-gfx] [PATCH 8/8] drm: Nuke drm_atomic_legacy_backoff
  2017-07-25  8:01 ` [PATCH 8/8] drm: Nuke drm_atomic_legacy_backoff Daniel Vetter
@ 2017-07-25  9:36   ` Maarten Lankhorst
  0 siblings, 0 replies; 84+ messages in thread
From: Maarten Lankhorst @ 2017-07-25  9:36 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development; +Cc: DRI Development

Op 25-07-17 om 10:01 schreef Daniel Vetter:
> Finally all users are gone!
>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/drm_atomic.c | 32 --------------------------------
>  include/drm/drm_atomic.h     |  2 --
>  2 files changed, 34 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 306fdca92abf..1b755439f591 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1588,38 +1588,6 @@ drm_atomic_add_affected_planes(struct drm_atomic_state *state,
>  EXPORT_SYMBOL(drm_atomic_add_affected_planes);
>  
>  /**
> - * drm_atomic_legacy_backoff - locking backoff for legacy ioctls
> - * @state: atomic state
> - *
> - * This function should be used by legacy entry points which don't understand
> - * -EDEADLK semantics. For simplicity this one will grab all modeset locks after
> - * the slowpath completed.
> - */
> -void drm_atomic_legacy_backoff(struct drm_atomic_state *state)
> -{
> -	struct drm_device *dev = state->dev;
> -	int ret;
> -	bool global = false;
> -
> -	if (WARN_ON(dev->mode_config.acquire_ctx == state->acquire_ctx)) {
> -		global = true;
> -
> -		dev->mode_config.acquire_ctx = NULL;
> -	}
> -
> -retry:
> -	drm_modeset_backoff(state->acquire_ctx);
> -
> -	ret = drm_modeset_lock_all_ctx(dev, state->acquire_ctx);
> -	if (ret)
> -		goto retry;
> -
> -	if (global)
> -		dev->mode_config.acquire_ctx = state->acquire_ctx;
> -}
> -EXPORT_SYMBOL(drm_atomic_legacy_backoff);
You're missing one patch here. We should also mark dev->mode_config.acquire_ctx __private. That way atomic commits will never be able to use lock_all. :)

Though I think it requires fixing vmwgfx_fb.c and i915 first.

Otherwise series looks good, so with review comments addressed.

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 3/8] drm: Handle properties in the core for atomic drivers
  2017-07-25  8:01 ` [PATCH 3/8] drm: Handle properties in the core " Daniel Vetter
@ 2017-07-25  9:36   ` Archit Taneja
  2017-07-25 12:02   ` [PATCH] " Daniel Vetter
  1 sibling, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:36 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development; +Cc: Daniel Vetter, DRI Development



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> The reason behind the original indirection through the helper
> functions was to allow existing drivers to overwrite how they handle
> properties. For example when a vendor-specific userspace had
> expectations that didn't match atomic. That seemed likely, since
> atomic is standardizing a _lot_ more of the behaviour of a kms driver.
> 
> But 20 drivers later there's no such need at all. Worse, this forces
> all drivers to hook up the default behaviour, breaking userspace if
> they forget to do that. And it forces us to export a bunch of core
> function just for those helpers.
> 
> And finally, these helpers are the last places using
> drm_atomic_legacy_backoff() and the implicit acquire_ctx.
> 
> This patch here just implements the new behaviour and updates the
> docs. Follow-up patches will garbage-collect all the dead code.
> 
> v2: Fixup docs even better!
> 
> v3: Make it actually work ...

Reviewed-by: Archit Taneja <architt@codeaurora.org>

> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>   drivers/gpu/drm/drm_atomic.c        |  60 ++++++++++++++++++--
>   drivers/gpu/drm/drm_connector.c     |   6 +-
>   drivers/gpu/drm/drm_crtc_helper.c   |   3 +-
>   drivers/gpu/drm/drm_crtc_internal.h |   7 +++
>   drivers/gpu/drm/drm_mode_object.c   | 110 +++++++++++++++++++++++++++---------
>   include/drm/drm_connector.h         |  10 ++--
>   include/drm/drm_crtc.h              |   6 +-
>   include/drm/drm_plane.h             |   6 +-
>   8 files changed, 158 insertions(+), 50 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 01192dd3ed79..0fd14aff7add 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1864,9 +1864,60 @@ static struct drm_pending_vblank_event *create_vblank_event(
>   	return e;
>   }
>   
> -static int atomic_set_prop(struct drm_atomic_state *state,
> -		struct drm_mode_object *obj, struct drm_property *prop,
> -		uint64_t prop_value)
> +int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
> +				     struct drm_connector *connector,
> +				     int mode)
> +{
> +	struct drm_connector *tmp_connector;
> +	struct drm_connector_state *new_conn_state;
> +	struct drm_crtc *crtc;
> +	struct drm_crtc_state *crtc_state;
> +	int i, ret, old_mode = connector->dpms;
> +	bool active = false;
> +
> +	ret = drm_modeset_lock(&state->dev->mode_config.connection_mutex,
> +			       state->acquire_ctx);
> +	if (ret)
> +		return ret;
> +
> +	if (mode != DRM_MODE_DPMS_ON)
> +		mode = DRM_MODE_DPMS_OFF;
> +	connector->dpms = mode;
> +
> +	crtc = connector->state->crtc;
> +	if (!crtc)
> +		goto out;
> +	ret = drm_atomic_add_affected_connectors(state, crtc);
> +	if (ret)
> +		goto out;
> +
> +	crtc_state = drm_atomic_get_crtc_state(state, crtc);
> +	if (IS_ERR(crtc_state)) {
> +		ret = PTR_ERR(crtc_state);
> +		goto out;
> +	}
> +
> +	for_each_new_connector_in_state(state, tmp_connector, new_conn_state, i) {
> +		if (new_conn_state->crtc != crtc)
> +			continue;
> +		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
> +			active = true;
> +			break;
> +		}
> +	}
> +
> +	crtc_state->active = active;
> +	ret = drm_atomic_commit(state);
> +out:
> +	if (ret != 0)
> +		connector->dpms = old_mode;
> +	return ret;
> +}
> +
> +int drm_atomic_set_property(struct drm_atomic_state *state,
> +			    struct drm_mode_object *obj,
> +			    struct drm_property *prop,
> +			    uint64_t prop_value)
>   {
>   	struct drm_mode_object *ref;
>   	int ret;
> @@ -2286,7 +2337,8 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
>   				goto out;
>   			}
>   
> -			ret = atomic_set_prop(state, obj, prop, prop_value);
> +			ret = drm_atomic_set_property(state, obj, prop,
> +						      prop_value);
>   			if (ret) {
>   				drm_mode_object_put(obj);
>   				goto out;
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index 349104eadefe..12371f184019 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -717,9 +717,9 @@ DRM_ENUM_NAME_FN(drm_get_tv_subconnector_name,
>    * 	drivers, it remaps to controlling the "ACTIVE" property on the CRTC the
>    * 	connector is linked to. Drivers should never set this property directly,
>    * 	it is handled by the DRM core by calling the &drm_connector_funcs.dpms
> - * 	callback. Atomic drivers should implement this hook using
> - * 	drm_atomic_helper_connector_dpms(). This is the only property standard
> - * 	connector property that userspace can change.
> + * 	callback. For atomic drivers the remapping to the "ACTIVE" property is
> + * 	implemented in the DRM core.  This is the only standard connector
> + * 	property that userspace can change.
>    * PATH:
>    * 	Connector path property to identify how this sink is physically
>    * 	connected. Used by DP MST. This should be set by calling
> diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
> index 4afdf7902eda..eab36a460638 100644
> --- a/drivers/gpu/drm/drm_crtc_helper.c
> +++ b/drivers/gpu/drm/drm_crtc_helper.c
> @@ -863,8 +863,7 @@ static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
>    * provided by the driver.
>    *
>    * This function is deprecated.  New drivers must implement atomic modeset
> - * support, for which this function is unsuitable. Instead drivers should use
> - * drm_atomic_helper_connector_dpms().
> + * support, where DPMS is handled in the DRM core.
>    *
>    * Returns:
>    * Always returns 0.
> diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h
> index d077c5490041..a43582076b20 100644
> --- a/drivers/gpu/drm/drm_crtc_internal.h
> +++ b/drivers/gpu/drm/drm_crtc_internal.h
> @@ -178,6 +178,13 @@ struct drm_minor;
>   int drm_atomic_debugfs_init(struct drm_minor *minor);
>   #endif
>   
> +int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
> +				     struct drm_connector *connector,
> +				     int mode);
> +int drm_atomic_set_property(struct drm_atomic_state *state,
> +			    struct drm_mode_object *obj,
> +			    struct drm_property *prop,
> +			    uint64_t prop_value);
>   int drm_atomic_get_property(struct drm_mode_object *obj,
>   			    struct drm_property *property, uint64_t *val);
>   int drm_mode_atomic_ioctl(struct drm_device *dev,
> diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
> index 92743a796bf0..1055533792f3 100644
> --- a/drivers/gpu/drm/drm_mode_object.c
> +++ b/drivers/gpu/drm/drm_mode_object.c
> @@ -392,6 +392,83 @@ struct drm_property *drm_mode_obj_find_prop_id(struct drm_mode_object *obj,
>   	return NULL;
>   }
>   
> +static int set_property_legacy(struct drm_mode_object *obj,
> +			       struct drm_property *prop,
> +			       uint64_t prop_value)
> +{
> +	struct drm_device *dev = prop->dev;
> +	struct drm_mode_object *ref;
> +	int ret = -EINVAL;
> +
> +	if (!drm_property_change_valid_get(prop, prop_value, &ref))
> +		return -EINVAL;
> +
> +	drm_modeset_lock_all(dev);
> +	switch (obj->type) {
> +	case DRM_MODE_OBJECT_CONNECTOR:
> +		ret = drm_mode_connector_set_obj_prop(obj, prop,
> +						      prop_value);
> +		break;
> +	case DRM_MODE_OBJECT_CRTC:
> +		ret = drm_mode_crtc_set_obj_prop(obj, prop, prop_value);
> +		break;
> +	case DRM_MODE_OBJECT_PLANE:
> +		ret = drm_mode_plane_set_obj_prop(obj_to_plane(obj),
> +						  prop, prop_value);
> +		break;
> +	}
> +	drm_property_change_valid_put(prop, ref);
> +	drm_modeset_unlock_all(dev);
> +
> +	return ret;
> +}
> +
> +static int set_property_atomic(struct drm_mode_object *obj,
> +			       struct drm_property *prop,
> +			       uint64_t prop_value)
> +{
> +	struct drm_device *dev = prop->dev;
> +	struct drm_atomic_state *state;
> +	struct drm_modeset_acquire_ctx ctx;
> +	int ret;
> +
> +	drm_modeset_acquire_init(&ctx, 0);
> +
> +	state = drm_atomic_state_alloc(dev);
> +	if (!state)
> +		return -ENOMEM;
> +	state->acquire_ctx = &ctx;
> +retry:
> +	if (prop == state->dev->mode_config.dpms_property) {
> +		if (obj->type != DRM_MODE_OBJECT_CONNECTOR) {
> +			ret = -EINVAL;
> +			goto out;
> +		}
> +
> +		ret = drm_atomic_connector_commit_dpms(state,
> +						       obj_to_connector(obj),
> +						       prop_value);
> +	} else {
> +		ret = drm_atomic_set_property(state, obj, prop, prop_value);
> +		if (ret)
> +			goto out;
> +		ret = drm_atomic_commit(state);
> +	}
> +out:
> +	if (ret == -EDEADLK) {
> +		drm_atomic_state_clear(state);
> +		drm_modeset_backoff(&ctx);
> +		goto retry;
> +	}
> +
> +	drm_atomic_state_put(state);
> +
> +	drm_modeset_drop_locks(&ctx);
> +	drm_modeset_acquire_fini(&ctx);
> +
> +	return ret;
> +}
> +
>   int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
>   				    struct drm_file *file_priv)
>   {
> @@ -399,18 +476,13 @@ int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
>   	struct drm_mode_object *arg_obj;
>   	struct drm_property *property;
>   	int ret = -EINVAL;
> -	struct drm_mode_object *ref;
>   
>   	if (!drm_core_check_feature(dev, DRIVER_MODESET))
>   		return -EINVAL;
>   
> -	drm_modeset_lock_all(dev);
> -
>   	arg_obj = drm_mode_object_find(dev, arg->obj_id, arg->obj_type);
> -	if (!arg_obj) {
> -		ret = -ENOENT;
> -		goto out;
> -	}
> +	if (!arg_obj)
> +		return -ENOENT;
>   
>   	if (!arg_obj->properties)
>   		goto out_unref;
> @@ -419,28 +491,12 @@ int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
>   	if (!property)
>   		goto out_unref;
>   
> -	if (!drm_property_change_valid_get(property, arg->value, &ref))
> -		goto out_unref;
> -
> -	switch (arg_obj->type) {
> -	case DRM_MODE_OBJECT_CONNECTOR:
> -		ret = drm_mode_connector_set_obj_prop(arg_obj, property,
> -						      arg->value);
> -		break;
> -	case DRM_MODE_OBJECT_CRTC:
> -		ret = drm_mode_crtc_set_obj_prop(arg_obj, property, arg->value);
> -		break;
> -	case DRM_MODE_OBJECT_PLANE:
> -		ret = drm_mode_plane_set_obj_prop(obj_to_plane(arg_obj),
> -						  property, arg->value);
> -		break;
> -	}
> -
> -	drm_property_change_valid_put(property, ref);
> +	if (drm_drv_uses_atomic_modeset(property->dev))
> +		ret = set_property_atomic(arg_obj, property, arg->value);
> +	else
> +		ret = set_property_legacy(arg_obj, property, arg->value);
>   
>   out_unref:
>   	drm_mode_object_put(arg_obj);
> -out:
> -	drm_modeset_unlock_all(dev);
>   	return ret;
>   }
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 4bc088269d05..ea8da401c93c 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -382,8 +382,8 @@ struct drm_connector_funcs {
>   	 * implement the 4 level DPMS support on the connector any more, but
>   	 * instead only have an on/off "ACTIVE" property on the CRTC object.
>   	 *
> -	 * Drivers implementing atomic modeset should use
> -	 * drm_atomic_helper_connector_dpms() to implement this hook.
> +	 * This hook is not used by atomic drivers, remapping of the legacy DPMS
> +	 * property is entirely handled in the DRM core.
>   	 *
>   	 * RETURNS:
>   	 *
> @@ -480,11 +480,9 @@ struct drm_connector_funcs {
>   	 * This is the legacy entry point to update a property attached to the
>   	 * connector.
>   	 *
> -	 * Drivers implementing atomic modeset should use
> -	 * drm_atomic_helper_connector_set_property() to implement this hook.
> -	 *
>   	 * This callback is optional if the driver does not support any legacy
> -	 * driver-private properties.
> +	 * driver-private properties. For atomic drivers it is not used because
> +	 * property handling is done entirely in the DRM core.
>   	 *
>   	 * RETURNS:
>   	 *
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 3a911a64c257..9c01f94b393c 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -481,11 +481,9 @@ struct drm_crtc_funcs {
>   	 * This is the legacy entry point to update a property attached to the
>   	 * CRTC.
>   	 *
> -	 * Drivers implementing atomic modeset should use
> -	 * drm_atomic_helper_crtc_set_property() to implement this hook.
> -	 *
>   	 * This callback is optional if the driver does not support any legacy
> -	 * driver-private properties.
> +	 * driver-private properties. For atomic drivers it is not used because
> +	 * property handling is done entirely in the DRM core.
>   	 *
>   	 * RETURNS:
>   	 *
> diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
> index 9ab3e7044812..204c213810df 100644
> --- a/include/drm/drm_plane.h
> +++ b/include/drm/drm_plane.h
> @@ -233,11 +233,9 @@ struct drm_plane_funcs {
>   	 * This is the legacy entry point to update a property attached to the
>   	 * plane.
>   	 *
> -	 * Drivers implementing atomic modeset should use
> -	 * drm_atomic_helper_plane_set_property() to implement this hook.
> -	 *
>   	 * This callback is optional if the driver does not support any legacy
> -	 * driver-private properties.
> +	 * driver-private properties. For atomic drivers it is not used because
> +	 * property handling is done entirely in the DRM core.
>   	 *
>   	 * RETURNS:
>   	 *
> 

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property
  2017-07-25  8:01 ` [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property Daniel Vetter
@ 2017-07-25  9:38   ` Archit Taneja
  2017-07-25 10:05   ` Philippe CORNU
  2017-08-03 13:34   ` Thomas Hellstrom
  2 siblings, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:38 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: David Airlie, nouveau, DRI Development, Sushmita Susheelendra,
	Masahiro Yamada, Daniel Vetter, Boris Brezillon,
	Thomas Hellstrom, Laurent Pinchart, Alexey Brodkin,
	Tomi Valkeinen, Ben Skeggs, Eric Engestrom, Philippe Cornu,
	Philipp Zabel, Maxime Ripard, Shawn Guo



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> It's dead code because this is now handled in the core.

Reviewed-by: Archit Taneja <architt@codeaurora.org>

> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Cc: Sushmita Susheelendra <ssusheel@codeaurora.org>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> ---
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c  |  1 -
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  1 -
>   drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c        |  1 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c        |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_crtc.c             |  1 -
>   include/drm/drm_atomic_helper.h                 |  3 --
>   9 files changed, 66 deletions(-)
> 
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> index 4fbbeab5c5d4..d73281095fac 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> @@ -431,7 +431,6 @@ static const struct drm_crtc_funcs atmel_hlcdc_crtc_funcs = {
>   	.atomic_destroy_state = atmel_hlcdc_crtc_destroy_state,
>   	.enable_vblank = atmel_hlcdc_crtc_enable_vblank,
>   	.disable_vblank = atmel_hlcdc_crtc_disable_vblank,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>   };
>   
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 4a960c741e35..22245aa8b1aa 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_crtc_set_property - helper for crtc properties
> - * @crtc: DRM crtc
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default crtc set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_crtc_state *crtc_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(crtc->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
> -retry:
> -	crtc_state = drm_atomic_get_crtc_state(state, crtc);
> -	if (IS_ERR(crtc_state)) {
> -		ret = PTR_ERR(crtc_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_crtc_set_property(crtc, crtc_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_crtc_set_property);
> -
> -/**
>    * drm_atomic_helper_plane_set_property - helper for plane properties
>    * @plane: DRM plane
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 706efd0c4190..961551135a39 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -567,7 +567,6 @@ static const struct drm_crtc_funcs ade_crtc_funcs = {
>   	.set_config	= drm_atomic_helper_set_config,
>   	.page_flip	= drm_atomic_helper_page_flip,
>   	.reset		= drm_atomic_helper_crtc_reset,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state	= drm_atomic_helper_crtc_duplicate_state,
>   	.atomic_destroy_state	= drm_atomic_helper_crtc_destroy_state,
>   	.enable_vblank	= ade_crtc_enable_vblank,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index f7b128c33aa1..b4d0c5298a53 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12373,7 +12373,6 @@ static int intel_atomic_commit(struct drm_device *dev,
>   static const struct drm_crtc_funcs intel_crtc_funcs = {
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>   	.set_config = drm_atomic_helper_set_config,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.destroy = intel_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
>   	.atomic_duplicate_state = intel_crtc_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> index 3c7a9d343e05..47fa2aba1983 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> @@ -484,7 +484,6 @@ static const struct drm_crtc_funcs mdp4_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp4_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.cursor_set = mdp4_crtc_cursor_set,
>   	.cursor_move = mdp4_crtc_cursor_move,
>   	.reset = drm_atomic_helper_crtc_reset,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> index 4322a502555a..5e3bc7224eee 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> @@ -919,7 +919,6 @@ static const struct drm_crtc_funcs mdp5_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp5_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.reset = mdp5_crtc_reset,
>   	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
>   	.atomic_destroy_state = mdp5_crtc_destroy_state,
> @@ -932,7 +931,6 @@ static const struct drm_crtc_funcs mdp5_crtc_no_lm_cursor_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp5_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.reset = mdp5_crtc_reset,
>   	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
>   	.atomic_destroy_state = mdp5_crtc_destroy_state,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index 9d40b2a8be4d..aa6fc525c539 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -2325,7 +2325,6 @@ nv50_head_func = {
>   	.destroy = nv50_head_destroy,
>   	.set_config = drm_atomic_helper_set_config,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state = nv50_head_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_head_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
> index efa525442e7d..33ed24e9c599 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -550,7 +550,6 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
>   	.destroy = omap_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
>   	.atomic_set_property = omap_crtc_atomic_set_property,
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index d6ddf5bc5fdd..e5c835d94540 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
>   					struct drm_property *property,
>   					uint64_t val);
> 

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
  2017-07-25  8:01   ` Daniel Vetter
  (?)
@ 2017-07-25  9:38     ` Archit Taneja
  -1 siblings, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:38 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: David Airlie, Liviu Dudau, DRI Development, Chris Wilson,
	Laurent Pinchart, Benjamin Gaignard, Daniel Vetter,
	Ville Syrjälä,
	Boris Brezillon, linux-samsung-soc, Joonyoung Shim,
	Alexey Brodkin, Rob Clark, Krzysztof Kozlowski, Tomi Valkeinen,
	Mali DP Maintainers, Ben Skeggs, nouveau, Thomas Hellstrom,
	Eric Engestrom, linux-renesas-soc, Jani Nikula, Inki Dae,
	Sean Paul, Jyri Sarha, Vincent Abriou, linux-arm-kernel,
	Seung-Woo Kim, Philippe Cornu, Yannick Fertre, Kyungmin Park,
	Kukjin Kim, Rongrong Zou, Maxime Ripard, Shawn Guo,
	Brian Starkey



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 

Reviewed-by: Archit Taneja <architt@codeaurora.org>

> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>   drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>   drivers/gpu/drm/drm_atomic.c                    |  3 +-
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  2 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>   drivers/gpu/drm/stm/ltdc.c                      |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>   include/drm/drm_atomic.h                        |  3 --
>   include/drm/drm_atomic_helper.h                 |  3 --
>   20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>   static const struct drm_plane_funcs malidp_de_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = malidp_de_plane_destroy,
>   	.reset = malidp_plane_reset,
>   	.atomic_duplicate_state = malidp_duplicate_plane_state,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>   static struct drm_plane_funcs layer_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = atmel_hlcdc_plane_destroy,
>   	.reset = atmel_hlcdc_plane_reset,
>   	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>    * RETURNS:
>    * Zero on success, error code on failure
>    */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>   		struct drm_plane_state *state, struct drm_property *property,
>   		uint64_t val)
>   {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>   
>   	return 0;
>   }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>   
>   /**
>    * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>    * drm_atomic_helper_connector_set_property - helper for connector properties
>    * @connector: DRM connector
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= exynos_drm_plane_reset,
>   	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>   	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>   static struct drm_plane_funcs hibmc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>   static struct drm_plane_funcs ade_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>   	.update_plane = intel_legacy_cursor_update,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>   		.update_plane = drm_atomic_helper_update_plane,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>   		.update_plane = mdp5_update_cursor_plane_legacy,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = nv50_wndw_destroy,
>   	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = omap_plane_reset,
>   	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>   	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>   struct drm_plane_state * __must_check
>   drm_atomic_get_plane_state(struct drm_atomic_state *state,
>   			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>   struct drm_connector_state * __must_check
>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>   			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>   					struct drm_property *property,
>   					uint64_t val);
> 

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-25  9:38     ` Archit Taneja
  0 siblings, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:38 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: David Airlie, Liviu Dudau, DRI Development, Chris Wilson,
	Laurent Pinchart, Benjamin Gaignard, Daniel Vetter,
	Ville Syrjälä,
	Boris Brezillon, linux-samsung-soc, Joonyoung Shim,
	Alexey Brodkin, Rob Clark, Krzysztof Kozlowski, Tomi Valkeinen,
	Mali DP Maintainers, Ben Skeggs, nouveau



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 

Reviewed-by: Archit Taneja <architt@codeaurora.org>

> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>   drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>   drivers/gpu/drm/drm_atomic.c                    |  3 +-
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  2 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>   drivers/gpu/drm/stm/ltdc.c                      |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>   include/drm/drm_atomic.h                        |  3 --
>   include/drm/drm_atomic_helper.h                 |  3 --
>   20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>   static const struct drm_plane_funcs malidp_de_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = malidp_de_plane_destroy,
>   	.reset = malidp_plane_reset,
>   	.atomic_duplicate_state = malidp_duplicate_plane_state,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>   static struct drm_plane_funcs layer_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = atmel_hlcdc_plane_destroy,
>   	.reset = atmel_hlcdc_plane_reset,
>   	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>    * RETURNS:
>    * Zero on success, error code on failure
>    */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>   		struct drm_plane_state *state, struct drm_property *property,
>   		uint64_t val)
>   {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>   
>   	return 0;
>   }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>   
>   /**
>    * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>    * drm_atomic_helper_connector_set_property - helper for connector properties
>    * @connector: DRM connector
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= exynos_drm_plane_reset,
>   	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>   	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>   static struct drm_plane_funcs hibmc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>   static struct drm_plane_funcs ade_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>   	.update_plane = intel_legacy_cursor_update,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>   		.update_plane = drm_atomic_helper_update_plane,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>   		.update_plane = mdp5_update_cursor_plane_legacy,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = nv50_wndw_destroy,
>   	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = omap_plane_reset,
>   	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>   	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>   struct drm_plane_state * __must_check
>   drm_atomic_get_plane_state(struct drm_atomic_state *state,
>   			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>   struct drm_connector_state * __must_check
>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>   			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>   					struct drm_property *property,
>   					uint64_t val);
> 

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-25  9:38     ` Archit Taneja
  0 siblings, 0 replies; 84+ messages in thread
From: Archit Taneja @ 2017-07-25  9:38 UTC (permalink / raw)
  To: linux-arm-kernel



On 07/25/2017 01:31 PM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 

Reviewed-by: Archit Taneja <architt@codeaurora.org>

> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrj?l?" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-samsung-soc at vger.kernel.org
> Cc: intel-gfx at lists.freedesktop.org
> Cc: nouveau at lists.freedesktop.org
> Cc: linux-renesas-soc at vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>   drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>   drivers/gpu/drm/drm_atomic.c                    |  3 +-
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  2 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>   drivers/gpu/drm/stm/ltdc.c                      |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>   include/drm/drm_atomic.h                        |  3 --
>   include/drm/drm_atomic_helper.h                 |  3 --
>   20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>   static const struct drm_plane_funcs malidp_de_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = malidp_de_plane_destroy,
>   	.reset = malidp_plane_reset,
>   	.atomic_duplicate_state = malidp_duplicate_plane_state,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>   static struct drm_plane_funcs layer_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = atmel_hlcdc_plane_destroy,
>   	.reset = atmel_hlcdc_plane_reset,
>   	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>    * RETURNS:
>    * Zero on success, error code on failure
>    */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>   		struct drm_plane_state *state, struct drm_property *property,
>   		uint64_t val)
>   {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>   
>   	return 0;
>   }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>   
>   /**
>    * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>    * drm_atomic_helper_connector_set_property - helper for connector properties
>    * @connector: DRM connector
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= exynos_drm_plane_reset,
>   	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>   	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>   static struct drm_plane_funcs hibmc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>   static struct drm_plane_funcs ade_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>   	.update_plane = intel_legacy_cursor_update,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>   		.update_plane = drm_atomic_helper_update_plane,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>   		.update_plane = mdp5_update_cursor_plane_legacy,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = nv50_wndw_destroy,
>   	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = omap_plane_reset,
>   	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>   	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>   struct drm_plane_state * __must_check
>   drm_atomic_get_plane_state(struct drm_atomic_state *state,
>   			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>   struct drm_connector_state * __must_check
>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>   			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>   					struct drm_property *property,
>   					uint64_t val);
> 

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property
  2017-07-25  8:01 ` [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property Daniel Vetter
  2017-07-25  9:38   ` Archit Taneja
@ 2017-07-25 10:05   ` Philippe CORNU
  2017-08-03 13:34   ` Thomas Hellstrom
  2 siblings, 0 replies; 84+ messages in thread
From: Philippe CORNU @ 2017-07-25 10:05 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: David Airlie, nouveau, DRI Development, Sushmita Susheelendra,
	Masahiro Yamada, Daniel Vetter, Boris Brezillon, Archit Taneja,
	Laurent Pinchart, Alexey Brodkin, Tomi Valkeinen, Ben Skeggs,
	Eric Engestrom, Thomas Hellstrom, Philipp Zabel, Maxime Ripard,
	Shawn Guo



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code because this is now handled in the core.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>

Tested-by: Philippe Cornu <philippe.cornu@st.com>

Many thanks
Philippe :-)

> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Cc: Sushmita Susheelendra <ssusheel@codeaurora.org>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> ---
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c  |  1 -
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  1 -
>   drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c        |  1 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c        |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_crtc.c             |  1 -
>   include/drm/drm_atomic_helper.h                 |  3 --
>   9 files changed, 66 deletions(-)
> 
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> index 4fbbeab5c5d4..d73281095fac 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> @@ -431,7 +431,6 @@ static const struct drm_crtc_funcs atmel_hlcdc_crtc_funcs = {
>   	.atomic_destroy_state = atmel_hlcdc_crtc_destroy_state,
>   	.enable_vblank = atmel_hlcdc_crtc_enable_vblank,
>   	.disable_vblank = atmel_hlcdc_crtc_disable_vblank,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>   };
>   
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 4a960c741e35..22245aa8b1aa 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_crtc_set_property - helper for crtc properties
> - * @crtc: DRM crtc
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default crtc set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_crtc_state *crtc_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(crtc->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
> -retry:
> -	crtc_state = drm_atomic_get_crtc_state(state, crtc);
> -	if (IS_ERR(crtc_state)) {
> -		ret = PTR_ERR(crtc_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_crtc_set_property(crtc, crtc_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_crtc_set_property);
> -
> -/**
>    * drm_atomic_helper_plane_set_property - helper for plane properties
>    * @plane: DRM plane
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 706efd0c4190..961551135a39 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -567,7 +567,6 @@ static const struct drm_crtc_funcs ade_crtc_funcs = {
>   	.set_config	= drm_atomic_helper_set_config,
>   	.page_flip	= drm_atomic_helper_page_flip,
>   	.reset		= drm_atomic_helper_crtc_reset,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state	= drm_atomic_helper_crtc_duplicate_state,
>   	.atomic_destroy_state	= drm_atomic_helper_crtc_destroy_state,
>   	.enable_vblank	= ade_crtc_enable_vblank,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index f7b128c33aa1..b4d0c5298a53 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12373,7 +12373,6 @@ static int intel_atomic_commit(struct drm_device *dev,
>   static const struct drm_crtc_funcs intel_crtc_funcs = {
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>   	.set_config = drm_atomic_helper_set_config,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.destroy = intel_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
>   	.atomic_duplicate_state = intel_crtc_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> index 3c7a9d343e05..47fa2aba1983 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> @@ -484,7 +484,6 @@ static const struct drm_crtc_funcs mdp4_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp4_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.cursor_set = mdp4_crtc_cursor_set,
>   	.cursor_move = mdp4_crtc_cursor_move,
>   	.reset = drm_atomic_helper_crtc_reset,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> index 4322a502555a..5e3bc7224eee 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> @@ -919,7 +919,6 @@ static const struct drm_crtc_funcs mdp5_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp5_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.reset = mdp5_crtc_reset,
>   	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
>   	.atomic_destroy_state = mdp5_crtc_destroy_state,
> @@ -932,7 +931,6 @@ static const struct drm_crtc_funcs mdp5_crtc_no_lm_cursor_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp5_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.reset = mdp5_crtc_reset,
>   	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
>   	.atomic_destroy_state = mdp5_crtc_destroy_state,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index 9d40b2a8be4d..aa6fc525c539 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -2325,7 +2325,6 @@ nv50_head_func = {
>   	.destroy = nv50_head_destroy,
>   	.set_config = drm_atomic_helper_set_config,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state = nv50_head_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_head_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
> index efa525442e7d..33ed24e9c599 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -550,7 +550,6 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
>   	.destroy = omap_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
>   	.atomic_set_property = omap_crtc_atomic_set_property,
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index d6ddf5bc5fdd..e5c835d94540 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
>   					struct drm_property *property,
>   					uint64_t val);
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
  2017-07-25  8:01   ` Daniel Vetter
  (?)
@ 2017-07-25 10:06     ` Philippe CORNU
  -1 siblings, 0 replies; 84+ messages in thread
From: Philippe CORNU @ 2017-07-25 10:06 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: DRI Development, Daniel Vetter, Liviu Dudau, Brian Starkey,
	Mali DP Maintainers, Boris Brezillon, Jani Nikula, Sean Paul,
	David Airlie, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
	Kyungmin Park, Kukjin Kim, Krzysztof Kozlowski, Ben Skeggs,
	Tomi Valkeinen, Laurent Pinchart, Benjamin Gaignard,
	Vincent ABRIOU, Yannick FERTRE, Jyri Sarha,
	Ville Syrjälä,
	Rongrong Zou, Shawn Guo, Alexey Brodkin, Eric Engestrom,
	Chris Wilson, Rob Clark, Archit Taneja, linux-arm-kernel,
	linux-samsung-soc, nouveau, linux-renesas-soc, Thomas Hellstrom,
	Maxime Ripard



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>

for stm,

Acked-by: Philippe Cornu <philippe.cornu@st.com>
Tested-by: Philippe Cornu <philippe.cornu@st.com>

Many thanks
Philippe :-)

> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>   drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>   drivers/gpu/drm/drm_atomic.c                    |  3 +-
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  2 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>   drivers/gpu/drm/stm/ltdc.c                      |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>   include/drm/drm_atomic.h                        |  3 --
>   include/drm/drm_atomic_helper.h                 |  3 --
>   20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>   static const struct drm_plane_funcs malidp_de_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = malidp_de_plane_destroy,
>   	.reset = malidp_plane_reset,
>   	.atomic_duplicate_state = malidp_duplicate_plane_state,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>   static struct drm_plane_funcs layer_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = atmel_hlcdc_plane_destroy,
>   	.reset = atmel_hlcdc_plane_reset,
>   	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>    * RETURNS:
>    * Zero on success, error code on failure
>    */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>   		struct drm_plane_state *state, struct drm_property *property,
>   		uint64_t val)
>   {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>   
>   	return 0;
>   }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>   
>   /**
>    * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>    * drm_atomic_helper_connector_set_property - helper for connector properties
>    * @connector: DRM connector
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= exynos_drm_plane_reset,
>   	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>   	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>   static struct drm_plane_funcs hibmc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>   static struct drm_plane_funcs ade_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>   	.update_plane = intel_legacy_cursor_update,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>   		.update_plane = drm_atomic_helper_update_plane,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>   		.update_plane = mdp5_update_cursor_plane_legacy,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = nv50_wndw_destroy,
>   	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = omap_plane_reset,
>   	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>   	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>   struct drm_plane_state * __must_check
>   drm_atomic_get_plane_state(struct drm_atomic_state *state,
>   			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>   struct drm_connector_state * __must_check
>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>   			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>   					struct drm_property *property,
>   					uint64_t val);
> 

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-25 10:06     ` Philippe CORNU
  0 siblings, 0 replies; 84+ messages in thread
From: Philippe CORNU @ 2017-07-25 10:06 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: David Airlie, nouveau, DRI Development, Laurent Pinchart,
	Benjamin Gaignard, Daniel Vetter, Boris Brezillon, Archit Taneja,
	linux-samsung-soc, Joonyoung Shim, Alexey Brodkin,
	Krzysztof Kozlowski, Tomi Valkeinen, Mali DP Maintainers,
	Ben Skeggs, Thomas Hellstrom, Eric Engestrom, linux-renesas-soc,
	Inki Dae



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>

for stm,

Acked-by: Philippe Cornu <philippe.cornu@st.com>
Tested-by: Philippe Cornu <philippe.cornu@st.com>

Many thanks
Philippe :-)

> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>   drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>   drivers/gpu/drm/drm_atomic.c                    |  3 +-
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  2 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>   drivers/gpu/drm/stm/ltdc.c                      |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>   include/drm/drm_atomic.h                        |  3 --
>   include/drm/drm_atomic_helper.h                 |  3 --
>   20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>   static const struct drm_plane_funcs malidp_de_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = malidp_de_plane_destroy,
>   	.reset = malidp_plane_reset,
>   	.atomic_duplicate_state = malidp_duplicate_plane_state,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>   static struct drm_plane_funcs layer_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = atmel_hlcdc_plane_destroy,
>   	.reset = atmel_hlcdc_plane_reset,
>   	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>    * RETURNS:
>    * Zero on success, error code on failure
>    */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>   		struct drm_plane_state *state, struct drm_property *property,
>   		uint64_t val)
>   {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>   
>   	return 0;
>   }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>   
>   /**
>    * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>    * drm_atomic_helper_connector_set_property - helper for connector properties
>    * @connector: DRM connector
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= exynos_drm_plane_reset,
>   	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>   	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>   static struct drm_plane_funcs hibmc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>   static struct drm_plane_funcs ade_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>   	.update_plane = intel_legacy_cursor_update,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>   		.update_plane = drm_atomic_helper_update_plane,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>   		.update_plane = mdp5_update_cursor_plane_legacy,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = nv50_wndw_destroy,
>   	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = omap_plane_reset,
>   	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>   	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>   struct drm_plane_state * __must_check
>   drm_atomic_get_plane_state(struct drm_atomic_state *state,
>   			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>   struct drm_connector_state * __must_check
>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>   			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>   					struct drm_property *property,
>   					uint64_t val);
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-25 10:06     ` Philippe CORNU
  0 siblings, 0 replies; 84+ messages in thread
From: Philippe CORNU @ 2017-07-25 10:06 UTC (permalink / raw)
  To: linux-arm-kernel



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>

for stm,

Acked-by: Philippe Cornu <philippe.cornu@st.com>
Tested-by: Philippe Cornu <philippe.cornu@st.com>

Many thanks
Philippe :-)

> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrj?l?" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-samsung-soc at vger.kernel.org
> Cc: intel-gfx at lists.freedesktop.org
> Cc: nouveau at lists.freedesktop.org
> Cc: linux-renesas-soc at vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>   drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>   drivers/gpu/drm/drm_atomic.c                    |  3 +-
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  2 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>   drivers/gpu/drm/stm/ltdc.c                      |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>   include/drm/drm_atomic.h                        |  3 --
>   include/drm/drm_atomic_helper.h                 |  3 --
>   20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>   static const struct drm_plane_funcs malidp_de_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = malidp_de_plane_destroy,
>   	.reset = malidp_plane_reset,
>   	.atomic_duplicate_state = malidp_duplicate_plane_state,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>   static struct drm_plane_funcs layer_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = atmel_hlcdc_plane_destroy,
>   	.reset = atmel_hlcdc_plane_reset,
>   	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>    * RETURNS:
>    * Zero on success, error code on failure
>    */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>   		struct drm_plane_state *state, struct drm_property *property,
>   		uint64_t val)
>   {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>   
>   	return 0;
>   }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>   
>   /**
>    * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>    * drm_atomic_helper_connector_set_property - helper for connector properties
>    * @connector: DRM connector
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= exynos_drm_plane_reset,
>   	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>   	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>   static struct drm_plane_funcs hibmc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>   static struct drm_plane_funcs ade_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>   	.update_plane = intel_legacy_cursor_update,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>   		.update_plane = drm_atomic_helper_update_plane,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>   		.update_plane = mdp5_update_cursor_plane_legacy,
>   		.disable_plane = drm_atomic_helper_disable_plane,
>   		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>   		.atomic_set_property = mdp5_plane_atomic_set_property,
>   		.atomic_get_property = mdp5_plane_atomic_get_property,
>   		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = nv50_wndw_destroy,
>   	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = omap_plane_reset,
>   	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>   	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.destroy = drm_plane_cleanup,
>   	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>   	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = sti_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
>   	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>   	.reset = drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>   	.update_plane	= drm_atomic_helper_update_plane,
>   	.disable_plane	= drm_atomic_helper_disable_plane,
>   	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>   	.reset		= drm_atomic_helper_plane_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>   struct drm_plane_state * __must_check
>   drm_atomic_get_plane_state(struct drm_atomic_state *state,
>   			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>   struct drm_connector_state * __must_check
>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>   			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>   					struct drm_property *property,
>   					uint64_t val);
> 

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-07-25 10:07     ` Philippe CORNU
  -1 siblings, 0 replies; 84+ messages in thread
From: Philippe CORNU @ 2017-07-25 10:07 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, David Airlie, nouveau,
	DRI Development, virtualization, Andrzej Hajda, Tomi Valkeinen,
	linux-mediatek, Laurent Pinchart, Benjamin Gaignard,
	Romain Perier, Daniel Vetter, Jyri Sarha, Heiko Stuebner,
	Marek Vasut, linux-renesas-soc, Archit Taneja, Lars-Peter



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Peter Senna Tschudin <peter.senna@collabora.com>
> Cc: Martin Donnelly <martin.donnelly@ge.com>
> Cc: Martyn Welch <martyn.welch@collabora.co.uk>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@freescale.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Carlo Caione <carlo@caione.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>

Tested-by: Philippe Cornu <philippe.cornu@st.com> (on stm)

Many thanks
Philippe :-)

> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> Cc: Yakir Yang <kuankuan.y@gmail.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
> Cc: Romain Perier <romain.perier@collabora.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Hai Li <hali@codeaurora.org>
> Cc: "Noralf Trønnes" <noralf@tronnes.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-mediatek@lists.infradead.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-rockchip@lists.infradead.org
> Cc: linux-tegra@vger.kernel.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: zain wang <wzz@rock-chips.com>
> Cc: Baoyou Xie <baoyou.xie@linaro.org>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>   drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>   drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>   drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>   .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>   drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>   drivers/gpu/drm/bridge/panel.c                     |  1 -
>   drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>   drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>   drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>   drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
>   drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
>   drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
>   drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
>   drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
>   drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
>   drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
>   drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
>   drivers/gpu/drm/i915/intel_crt.c                   |  1 -
>   drivers/gpu/drm/i915/intel_dp.c                    |  1 -
>   drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
>   drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
>   drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
>   drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
>   drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
>   drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
>   drivers/gpu/drm/i915/intel_tv.c                    |  1 -
>   drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>   drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>   drivers/gpu/drm/imx/parallel-display.c             |  1 -
>   drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>   drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
>   drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
>   drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>   drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
>   drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
>   drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
>   drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
>   drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
>   drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
>   drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>   drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
>   drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
>   drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
>   drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
>   drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
>   drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
>   drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
>   drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
>   drivers/gpu/drm/tegra/dsi.c                        |  1 -
>   drivers/gpu/drm/tegra/hdmi.c                       |  1 -
>   drivers/gpu/drm/tegra/rgb.c                        |  1 -
>   drivers/gpu/drm/tegra/sor.c                        |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
>   drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
>   drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
>   drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
>   drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
>   drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>   drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>   drivers/gpu/drm/zte/zx_vga.c                       |  1 -
>   include/drm/drm_atomic_helper.h                    |  2 -
>   68 files changed, 3 insertions(+), 164 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> index ff9792d350c8..682c090fa3ed 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> @@ -786,7 +786,6 @@ adv7511_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static struct drm_connector_funcs adv7511_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = adv7511_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> index dc045e0c32fc..9385eb0b1ee4 100644
> --- a/drivers/gpu/drm/bridge/analogix-anx78xx.c
> +++ b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> @@ -1002,7 +1002,6 @@ static enum drm_connector_status anx78xx_detect(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs anx78xx_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = anx78xx_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 4c758ed51939..5dd3f1cd074a 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1005,7 +1005,6 @@ analogix_dp_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs analogix_dp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = analogix_dp_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c
> index 8a52539e618e..de5e7dee7ad6 100644
> --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c
> +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c
> @@ -92,7 +92,6 @@ dumb_vga_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs dumb_vga_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= dumb_vga_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> index 11f11086a68f..7ccadba7c98c 100644
> --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> @@ -193,7 +193,6 @@ static enum drm_connector_status ge_b850v3_lvds_detect(
>   }
>   
>   static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = ge_b850v3_lvds_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index f0b5d0fc8594..d64a3283822a 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -238,7 +238,6 @@ static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs =
>   };
>   
>   static const struct drm_connector_funcs ptn3460_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index 685c1a480201..59288b248dc5 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -50,7 +50,6 @@ panel_bridge_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs panel_bridge_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index 4f7725d4a309..81198f5e9afa 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -476,7 +476,6 @@ static const struct drm_connector_helper_funcs ps8622_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs ps8622_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
> index 9efb7b8fad57..b1ab4ab09532 100644
> --- a/drivers/gpu/drm/bridge/sii902x.c
> +++ b/drivers/gpu/drm/bridge/sii902x.c
> @@ -124,7 +124,6 @@ sii902x_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs sii902x_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = sii902x_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index 60faf2d2bc6b..91ac849604a8 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -1920,7 +1920,6 @@ static void dw_hdmi_connector_force(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs dw_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = dw_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index 12a35f9c3adc..503252d6a74d 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1160,7 +1160,6 @@ static const struct drm_connector_helper_funcs tc_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs tc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
> index 7ea2a15e8807..acb857030951 100644
> --- a/drivers/gpu/drm/bridge/ti-tfp410.c
> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c
> @@ -102,7 +102,6 @@ tfp410_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs tfp410_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= tfp410_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 1ca0dcca6230..877733ae44ac 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -3102,85 +3102,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc,
>   EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
>   
>   /**
> - * drm_atomic_helper_connector_dpms() - connector dpms helper implementation
> - * @connector: affected connector
> - * @mode: DPMS mode
> - *
> - * This is the main helper function provided by the atomic helper framework for
> - * implementing the legacy DPMS connector interface. It computes the new desired
> - * &drm_crtc_state.active state for the corresponding CRTC (if the connector is
> - * enabled) and updates it.
> - *
> - * Returns:
> - * Returns 0 on success, negative errno numbers on failure.
> - */
> -int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
> -				     int mode)
> -{
> -	struct drm_mode_config *config = &connector->dev->mode_config;
> -	struct drm_atomic_state *state;
> -	struct drm_crtc_state *crtc_state;
> -	struct drm_crtc *crtc;
> -	struct drm_connector *tmp_connector;
> -	struct drm_connector_list_iter conn_iter;
> -	int ret;
> -	bool active = false;
> -	int old_mode = connector->dpms;
> -
> -	if (mode != DRM_MODE_DPMS_ON)
> -		mode = DRM_MODE_DPMS_OFF;
> -
> -	connector->dpms = mode;
> -	crtc = connector->state->crtc;
> -
> -	if (!crtc)
> -		return 0;
> -
> -	state = drm_atomic_state_alloc(connector->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
> -retry:
> -	crtc_state = drm_atomic_get_crtc_state(state, crtc);
> -	if (IS_ERR(crtc_state)) {
> -		ret = PTR_ERR(crtc_state);
> -		goto fail;
> -	}
> -
> -	WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
> -
> -	drm_connector_list_iter_begin(connector->dev, &conn_iter);
> -	drm_for_each_connector_iter(tmp_connector, &conn_iter) {
> -		if (tmp_connector->state->crtc != crtc)
> -			continue;
> -
> -		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
> -			active = true;
> -			break;
> -		}
> -	}
> -	drm_connector_list_iter_end(&conn_iter);
> -	crtc_state->active = active;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -	if (ret != 0)
> -		connector->dpms = old_mode;
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_connector_dpms);
> -
> -/**
>    * drm_atomic_helper_best_encoder - Helper for
>    * 	&drm_connector_helper_funcs.best_encoder callback
>    * @connector: Connector control structure
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 63abcd280fa0..76d80e5de521 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -59,7 +59,6 @@ static void exynos_dpi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs exynos_dpi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = exynos_dpi_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = exynos_dpi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index f580be170089..4ea7cc7cb3de 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1537,7 +1537,6 @@ static void exynos_dsi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs exynos_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = exynos_dsi_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = exynos_dsi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index cb8a72842537..9186a654c3b5 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -289,7 +289,6 @@ static void vidi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vidi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = vidi_detect,
>   	.destroy = vidi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index c953927fb0cb..0e2a472c3021 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -835,7 +835,6 @@ static void hdmi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = hdmi_detect,
>   	.destroy = hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index dcbf3c06e1d8..edd7d8127d19 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -63,7 +63,6 @@ static const struct drm_connector_funcs fsl_dcu_drm_connector_funcs = {
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>   	.destroy = fsl_dcu_drm_connector_destroy,
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.reset = drm_atomic_helper_connector_reset,
>   };
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> index 12a18557c5fd..ec4dd9df9150 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> @@ -47,7 +47,6 @@ static const struct drm_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs hibmc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
> index d1e7ac540199..54e3255dde13 100644
> --- a/drivers/gpu/drm/i2c/tda998x_drv.c
> +++ b/drivers/gpu/drm/i2c/tda998x_drv.c
> @@ -969,14 +969,6 @@ static int tda998x_audio_codec_init(struct tda998x_priv *priv,
>   
>   /* DRM connector functions */
>   
> -static int tda998x_connector_dpms(struct drm_connector *connector, int mode)
> -{
> -	if (drm_core_check_feature(connector->dev, DRIVER_ATOMIC))
> -		return drm_atomic_helper_connector_dpms(connector, mode);
> -	else
> -		return drm_helper_connector_dpms(connector, mode);
> -}
> -
>   static int tda998x_connector_fill_modes(struct drm_connector *connector,
>   					uint32_t maxX, uint32_t maxY)
>   {
> @@ -1014,7 +1006,7 @@ static void tda998x_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tda998x_connector_funcs = {
> -	.dpms = tda998x_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = tda998x_connector_fill_modes,
>   	.detect = tda998x_connector_detect,
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index 84c3a6dc7c2a..70e0ff41070c 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -802,7 +802,6 @@ void intel_crt_reset(struct drm_encoder *encoder)
>    */
>   
>   static const struct drm_connector_funcs intel_crt_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 19b082ea57ef..76c8a0bd17f9 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5007,7 +5007,6 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
>   }
>   
>   static const struct drm_connector_funcs intel_dp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.force = intel_dp_force,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_digital_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index 59a6dfd48ed4..58568559711a 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -346,7 +346,6 @@ intel_dp_mst_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_dp_mst_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.late_register = intel_connector_register,
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 375e7cfcf207..b0b3adf016f8 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -1653,7 +1653,6 @@ static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs intel_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
>   	.destroy = intel_dsi_connector_destroy,
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> index 6b1970542911..baf369d2de30 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -344,7 +344,6 @@ static void intel_dvo_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_dvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_dvo_detect,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 3074190b9455..2ef1ee85129d 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1761,7 +1761,6 @@ static void intel_hdmi_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_hdmi_detect,
>   	.force = intel_hdmi_force,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 6579299f5d00..61d557948e21 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -595,7 +595,6 @@ static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs intel_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_lvds_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_digital_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index a8eee1984ddf..bea8152ae859 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -2193,7 +2193,6 @@ intel_sdvo_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_sdvo_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_sdvo_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index e4ef2919b682..906893c006d8 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1407,7 +1407,6 @@ intel_tv_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_tv_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
>   	.destroy = intel_tv_destroy,
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8b05ecb8fdef..56dd7a9a8e25 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -389,7 +389,6 @@ static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
>   
>   
>   static const struct drm_connector_funcs imx_ldb_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
> index 4826bb781723..bc27c2699464 100644
> --- a/drivers/gpu/drm/imx/imx-tve.c
> +++ b/drivers/gpu/drm/imx/imx-tve.c
> @@ -341,7 +341,6 @@ static int imx_tve_atomic_check(struct drm_encoder *encoder,
>   }
>   
>   static const struct drm_connector_funcs imx_tve_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index 8aca20209cb8..8def97d75030 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -135,7 +135,6 @@ static int imx_pd_encoder_atomic_check(struct drm_encoder *encoder,
>   }
>   
>   static const struct drm_connector_funcs imx_pd_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index a31bd2a82de5..7e5e24c2152a 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -766,7 +766,6 @@ static const struct drm_encoder_helper_funcs mtk_dsi_encoder_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs mtk_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index f2437cd1e0f9..690c67507cbc 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -1261,7 +1261,6 @@ static struct drm_encoder *mtk_hdmi_conn_best_enc(struct drm_connector *conn)
>   }
>   
>   static const struct drm_connector_funcs mtk_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = hdmi_conn_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = hdmi_conn_destroy,
> diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> index 00775b397dba..79d95ca8a0c0 100644
> --- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
> +++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> @@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= meson_cvbs_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= meson_cvbs_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index a879ffa534b4..855248132b2b 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -626,7 +626,6 @@ static void dsi_mgr_bridge_mode_set(struct drm_bridge *bridge,
>   }
>   
>   static const struct drm_connector_funcs dsi_mgr_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = dsi_mgr_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = dsi_mgr_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/edp/edp_connector.c b/drivers/gpu/drm/msm/edp/edp_connector.c
> index 5960628ceb93..6f3fc6b0f0a3 100644
> --- a/drivers/gpu/drm/msm/edp/edp_connector.c
> +++ b/drivers/gpu/drm/msm/edp/edp_connector.c
> @@ -92,7 +92,6 @@ static int edp_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs edp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = edp_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = edp_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> index a2515b466ce5..71536d9c7fe8 100644
> --- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> +++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> @@ -407,7 +407,6 @@ static int msm_hdmi_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> index 353429b05733..e3b1c86b7aae 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> @@ -91,7 +91,6 @@ static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs mdp4_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = mdp4_lvds_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = mdp4_lvds_connector_destroy,
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index f7d729aa09bd..e5edf016a439 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -74,7 +74,6 @@ static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs mxsfb_panel_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= mxsfb_panel_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= mxsfb_panel_connector_destroy,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
> index 2468e81918fd..5137155bf3c0 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
> @@ -1072,17 +1072,9 @@ nouveau_connector_helper_funcs = {
>   	.best_encoder = nouveau_connector_best_encoder,
>   };
>   
> -static int
> -nouveau_connector_dpms(struct drm_connector *connector, int mode)
> -{
> -	if (drm_drv_uses_atomic_modeset(connector->dev))
> -		return drm_atomic_helper_connector_dpms(connector, mode);
> -	return drm_helper_connector_dpms(connector, mode);
> -}
> -
>   static const struct drm_connector_funcs
>   nouveau_connector_funcs = {
> -	.dpms = nouveau_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nouveau_connector_detect,
>   	.force = nouveau_connector_force,
> @@ -1097,7 +1089,7 @@ nouveau_connector_funcs = {
>   
>   static const struct drm_connector_funcs
>   nouveau_connector_funcs_lvds = {
> -	.dpms = nouveau_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nouveau_connector_detect_lvds,
>   	.force = nouveau_connector_force,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index 80a96eb08bbf..d442def6c965 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -3118,7 +3118,6 @@ nv50_mstc_destroy(struct drm_connector *connector)
>   
>   static const struct drm_connector_funcs
>   nv50_mstc = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nv50_mstc_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
> index c24b6b783e9a..d1ec76ef5cc6 100644
> --- a/drivers/gpu/drm/omapdrm/omap_connector.c
> +++ b/drivers/gpu/drm/omapdrm/omap_connector.c
> @@ -195,7 +195,6 @@ static int omap_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs omap_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = omap_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/pl111/pl111_connector.c b/drivers/gpu/drm/pl111/pl111_connector.c
> index 3f213d7e7692..d335f9a29ce4 100644
> --- a/drivers/gpu/drm/pl111/pl111_connector.c
> +++ b/drivers/gpu/drm/pl111/pl111_connector.c
> @@ -69,7 +69,6 @@ const struct drm_connector_funcs connector_funcs = {
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = pl111_connector_destroy,
>   	.detect = pl111_connector_detect,
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> index ee91481131ad..b373ad48ef5f 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> @@ -46,7 +46,6 @@ static void rcar_du_lvds_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = rcar_du_lvds_connector_destroy,
> diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> index 9b0b0588bbed..a57da051f516 100644
> --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
> +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> @@ -254,7 +254,6 @@ static void cdn_dp_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs cdn_dp_atomic_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = cdn_dp_connector_detect,
>   	.destroy = cdn_dp_connector_destroy,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> index 21b9737662ae..9a20b9dc27c8 100644
> --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> @@ -1080,7 +1080,6 @@ static void dw_mipi_dsi_drm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs dw_mipi_dsi_atomic_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = dw_mipi_dsi_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
> index 7149968aa25a..bd87768dd549 100644
> --- a/drivers/gpu/drm/rockchip/inno_hdmi.c
> +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
> @@ -593,7 +593,6 @@ static void inno_hdmi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs inno_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = inno_hdmi_probe_single_connector_modes,
>   	.detect = inno_hdmi_connector_detect,
>   	.destroy = inno_hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index a51cd9f754db..852bf2293b05 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -412,7 +412,6 @@ static int sti_dvo_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_dvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = sti_dvo_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
> index d6ed909d9d75..cf65e32b5090 100644
> --- a/drivers/gpu/drm/sti/sti_hda.c
> +++ b/drivers/gpu/drm/sti/sti_hda.c
> @@ -647,7 +647,6 @@ static int sti_hda_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_hda_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
> index 21f11dfae472..30f02d2fdd03 100644
> --- a/drivers/gpu/drm/sti/sti_hdmi.c
> +++ b/drivers/gpu/drm/sti/sti_hdmi.c
> @@ -1113,7 +1113,6 @@ static int sti_hdmi_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = sti_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> index 83b7a2a025f2..f5d0d6bd1084 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> @@ -306,7 +306,6 @@ sun4i_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs sun4i_hdmi_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= sun4i_hdmi_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index 422b191faa77..550bb262943f 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -120,7 +120,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs sun4i_rgb_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= sun4i_rgb_connector_destroy,
>   	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
> index 338b9e5bb2a3..7b45ac9383ea 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_tv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
> @@ -546,7 +546,6 @@ sun4i_tv_comp_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= sun4i_tv_comp_connector_destroy,
>   	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
> index 3dea1216bafd..e4b5aedfdbd4 100644
> --- a/drivers/gpu/drm/tegra/dsi.c
> +++ b/drivers/gpu/drm/tegra/dsi.c
> @@ -815,7 +815,6 @@ tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tegra_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = tegra_dsi_connector_reset,
>   	.detect = tegra_output_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
> index 718d8db406a6..a621b0da4092 100644
> --- a/drivers/gpu/drm/tegra/hdmi.c
> +++ b/drivers/gpu/drm/tegra/hdmi.c
> @@ -902,7 +902,6 @@ tegra_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs tegra_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tegra_hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c
> index a131b44e2d6f..78ec5193741d 100644
> --- a/drivers/gpu/drm/tegra/rgb.c
> +++ b/drivers/gpu/drm/tegra/rgb.c
> @@ -88,7 +88,6 @@ static void tegra_dc_write_regs(struct tegra_dc *dc,
>   }
>   
>   static const struct drm_connector_funcs tegra_rgb_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tegra_output_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> index fb2709c0c461..e0642d05a8d3 100644
> --- a/drivers/gpu/drm/tegra/sor.c
> +++ b/drivers/gpu/drm/tegra/sor.c
> @@ -1340,7 +1340,6 @@ tegra_sor_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tegra_sor_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = tegra_sor_connector_reset,
>   	.detect = tegra_sor_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> index 28c3e2f44f64..1813a3623ce6 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> @@ -189,7 +189,6 @@ static struct drm_encoder *panel_connector_best_encoder(
>   
>   static const struct drm_connector_funcs panel_connector_funcs = {
>   	.destroy            = panel_connector_destroy,
> -	.dpms               = drm_atomic_helper_connector_dpms,
>   	.fill_modes         = drm_helper_probe_single_connector_modes,
>   	.reset              = drm_atomic_helper_connector_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> index aabfad882e23..1e2dfb1b1d6b 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> @@ -202,7 +202,6 @@ static struct drm_encoder *tfp410_connector_best_encoder(
>   
>   static const struct drm_connector_funcs tfp410_connector_funcs = {
>   	.destroy            = tfp410_connector_destroy,
> -	.dpms               = drm_atomic_helper_connector_dpms,
>   	.detect             = tfp410_connector_detect,
>   	.fill_modes         = drm_helper_probe_single_connector_modes,
>   	.reset              = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> index ec43fb7ad9e4..79b6687977d3 100644
> --- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> @@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tinydrm_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tinydrm_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> index 406d6d83b6c6..b249b79ce04a 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> @@ -265,7 +265,6 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vc4_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = vc4_hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = vc4_hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
> index 369fea5a13a1..3a9a302247a2 100644
> --- a/drivers/gpu/drm/vc4/vc4_vec.c
> +++ b/drivers/gpu/drm/vc4/vc4_vec.c
> @@ -366,7 +366,6 @@ static int vc4_vec_connector_get_modes(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vc4_vec_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = vc4_vec_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = vc4_vec_connector_destroy,
> diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
> index ffd22e5ab43a..b6d52055a11f 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_display.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
> @@ -252,7 +252,6 @@ static void virtio_gpu_conn_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs virtio_gpu_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = virtio_gpu_conn_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = virtio_gpu_conn_destroy,
> diff --git a/drivers/gpu/drm/zte/zx_hdmi.c b/drivers/gpu/drm/zte/zx_hdmi.c
> index 7e834e3eeed9..b8abb1b496ff 100644
> --- a/drivers/gpu/drm/zte/zx_hdmi.c
> +++ b/drivers/gpu/drm/zte/zx_hdmi.c
> @@ -300,7 +300,6 @@ zx_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs zx_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = zx_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/zte/zx_tvenc.c b/drivers/gpu/drm/zte/zx_tvenc.c
> index b56dc69843fc..0de1a71ca4e0 100644
> --- a/drivers/gpu/drm/zte/zx_tvenc.c
> +++ b/drivers/gpu/drm/zte/zx_tvenc.c
> @@ -269,7 +269,6 @@ static struct drm_connector_helper_funcs zx_tvenc_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs zx_tvenc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/zte/zx_vga.c b/drivers/gpu/drm/zte/zx_vga.c
> index 1e0811f775cb..3e7e33cd3dfa 100644
> --- a/drivers/gpu/drm/zte/zx_vga.c
> +++ b/drivers/gpu/drm/zte/zx_vga.c
> @@ -138,7 +138,6 @@ zx_vga_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs zx_vga_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = zx_vga_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index 619089a027ec..d2b56cc657e9 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -136,8 +136,6 @@ int drm_atomic_helper_page_flip_target(
>   				uint32_t flags,
>   				uint32_t target,
>   				struct drm_modeset_acquire_ctx *ctx);
> -int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
> -				     int mode);
>   struct drm_encoder *
>   drm_atomic_helper_best_encoder(struct drm_connector *connector);
>   
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (6 preceding siblings ...)
  (?)
@ 2017-07-25 10:07   ` Philippe CORNU
  -1 siblings, 0 replies; 84+ messages in thread
From: Philippe CORNU @ 2017-07-25 10:07 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, David Airlie, nouveau,
	DRI Development, virtualization, Andrzej Hajda, Tomi Valkeinen,
	linux-mediatek, Laurent Pinchart, Benjamin Gaignard,
	Romain Perier, Daniel Vetter, Jyri Sarha, Heiko Stuebner,
	Marek Vasut, linux-renesas-soc, Archit Taneja, Lars-Pete



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Peter Senna Tschudin <peter.senna@collabora.com>
> Cc: Martin Donnelly <martin.donnelly@ge.com>
> Cc: Martyn Welch <martyn.welch@collabora.co.uk>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@freescale.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Carlo Caione <carlo@caione.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>

Tested-by: Philippe Cornu <philippe.cornu@st.com> (on stm)

Many thanks
Philippe :-)

> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> Cc: Yakir Yang <kuankuan.y@gmail.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
> Cc: Romain Perier <romain.perier@collabora.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Hai Li <hali@codeaurora.org>
> Cc: "Noralf Trønnes" <noralf@tronnes.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: linux-mediatek@lists.infradead.org
> Cc: linux-amlogic@lists.infradead.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-rockchip@lists.infradead.org
> Cc: linux-tegra@vger.kernel.org
> Cc: virtualization@lists.linux-foundation.org
> Cc: zain wang <wzz@rock-chips.com>
> Cc: Baoyou Xie <baoyou.xie@linaro.org>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>   drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>   drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>   drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>   .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>   drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>   drivers/gpu/drm/bridge/panel.c                     |  1 -
>   drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>   drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>   drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>   drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
>   drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
>   drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
>   drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
>   drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
>   drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
>   drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
>   drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
>   drivers/gpu/drm/i915/intel_crt.c                   |  1 -
>   drivers/gpu/drm/i915/intel_dp.c                    |  1 -
>   drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
>   drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
>   drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
>   drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
>   drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
>   drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
>   drivers/gpu/drm/i915/intel_tv.c                    |  1 -
>   drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>   drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>   drivers/gpu/drm/imx/parallel-display.c             |  1 -
>   drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>   drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
>   drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
>   drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>   drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
>   drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
>   drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
>   drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
>   drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
>   drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
>   drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>   drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
>   drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
>   drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
>   drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
>   drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
>   drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
>   drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
>   drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
>   drivers/gpu/drm/tegra/dsi.c                        |  1 -
>   drivers/gpu/drm/tegra/hdmi.c                       |  1 -
>   drivers/gpu/drm/tegra/rgb.c                        |  1 -
>   drivers/gpu/drm/tegra/sor.c                        |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
>   drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
>   drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
>   drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
>   drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
>   drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>   drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>   drivers/gpu/drm/zte/zx_vga.c                       |  1 -
>   include/drm/drm_atomic_helper.h                    |  2 -
>   68 files changed, 3 insertions(+), 164 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> index ff9792d350c8..682c090fa3ed 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> @@ -786,7 +786,6 @@ adv7511_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static struct drm_connector_funcs adv7511_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = adv7511_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> index dc045e0c32fc..9385eb0b1ee4 100644
> --- a/drivers/gpu/drm/bridge/analogix-anx78xx.c
> +++ b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> @@ -1002,7 +1002,6 @@ static enum drm_connector_status anx78xx_detect(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs anx78xx_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = anx78xx_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 4c758ed51939..5dd3f1cd074a 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1005,7 +1005,6 @@ analogix_dp_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs analogix_dp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = analogix_dp_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c
> index 8a52539e618e..de5e7dee7ad6 100644
> --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c
> +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c
> @@ -92,7 +92,6 @@ dumb_vga_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs dumb_vga_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= dumb_vga_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> index 11f11086a68f..7ccadba7c98c 100644
> --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> @@ -193,7 +193,6 @@ static enum drm_connector_status ge_b850v3_lvds_detect(
>   }
>   
>   static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = ge_b850v3_lvds_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index f0b5d0fc8594..d64a3283822a 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -238,7 +238,6 @@ static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs =
>   };
>   
>   static const struct drm_connector_funcs ptn3460_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index 685c1a480201..59288b248dc5 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -50,7 +50,6 @@ panel_bridge_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs panel_bridge_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index 4f7725d4a309..81198f5e9afa 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -476,7 +476,6 @@ static const struct drm_connector_helper_funcs ps8622_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs ps8622_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
> index 9efb7b8fad57..b1ab4ab09532 100644
> --- a/drivers/gpu/drm/bridge/sii902x.c
> +++ b/drivers/gpu/drm/bridge/sii902x.c
> @@ -124,7 +124,6 @@ sii902x_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs sii902x_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = sii902x_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index 60faf2d2bc6b..91ac849604a8 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -1920,7 +1920,6 @@ static void dw_hdmi_connector_force(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs dw_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = dw_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index 12a35f9c3adc..503252d6a74d 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1160,7 +1160,6 @@ static const struct drm_connector_helper_funcs tc_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs tc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
> index 7ea2a15e8807..acb857030951 100644
> --- a/drivers/gpu/drm/bridge/ti-tfp410.c
> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c
> @@ -102,7 +102,6 @@ tfp410_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs tfp410_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= tfp410_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 1ca0dcca6230..877733ae44ac 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -3102,85 +3102,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc,
>   EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
>   
>   /**
> - * drm_atomic_helper_connector_dpms() - connector dpms helper implementation
> - * @connector: affected connector
> - * @mode: DPMS mode
> - *
> - * This is the main helper function provided by the atomic helper framework for
> - * implementing the legacy DPMS connector interface. It computes the new desired
> - * &drm_crtc_state.active state for the corresponding CRTC (if the connector is
> - * enabled) and updates it.
> - *
> - * Returns:
> - * Returns 0 on success, negative errno numbers on failure.
> - */
> -int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
> -				     int mode)
> -{
> -	struct drm_mode_config *config = &connector->dev->mode_config;
> -	struct drm_atomic_state *state;
> -	struct drm_crtc_state *crtc_state;
> -	struct drm_crtc *crtc;
> -	struct drm_connector *tmp_connector;
> -	struct drm_connector_list_iter conn_iter;
> -	int ret;
> -	bool active = false;
> -	int old_mode = connector->dpms;
> -
> -	if (mode != DRM_MODE_DPMS_ON)
> -		mode = DRM_MODE_DPMS_OFF;
> -
> -	connector->dpms = mode;
> -	crtc = connector->state->crtc;
> -
> -	if (!crtc)
> -		return 0;
> -
> -	state = drm_atomic_state_alloc(connector->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
> -retry:
> -	crtc_state = drm_atomic_get_crtc_state(state, crtc);
> -	if (IS_ERR(crtc_state)) {
> -		ret = PTR_ERR(crtc_state);
> -		goto fail;
> -	}
> -
> -	WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
> -
> -	drm_connector_list_iter_begin(connector->dev, &conn_iter);
> -	drm_for_each_connector_iter(tmp_connector, &conn_iter) {
> -		if (tmp_connector->state->crtc != crtc)
> -			continue;
> -
> -		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
> -			active = true;
> -			break;
> -		}
> -	}
> -	drm_connector_list_iter_end(&conn_iter);
> -	crtc_state->active = active;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -	if (ret != 0)
> -		connector->dpms = old_mode;
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_connector_dpms);
> -
> -/**
>    * drm_atomic_helper_best_encoder - Helper for
>    * 	&drm_connector_helper_funcs.best_encoder callback
>    * @connector: Connector control structure
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 63abcd280fa0..76d80e5de521 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -59,7 +59,6 @@ static void exynos_dpi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs exynos_dpi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = exynos_dpi_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = exynos_dpi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index f580be170089..4ea7cc7cb3de 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1537,7 +1537,6 @@ static void exynos_dsi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs exynos_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = exynos_dsi_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = exynos_dsi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index cb8a72842537..9186a654c3b5 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -289,7 +289,6 @@ static void vidi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vidi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = vidi_detect,
>   	.destroy = vidi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index c953927fb0cb..0e2a472c3021 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -835,7 +835,6 @@ static void hdmi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = hdmi_detect,
>   	.destroy = hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index dcbf3c06e1d8..edd7d8127d19 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -63,7 +63,6 @@ static const struct drm_connector_funcs fsl_dcu_drm_connector_funcs = {
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>   	.destroy = fsl_dcu_drm_connector_destroy,
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.reset = drm_atomic_helper_connector_reset,
>   };
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> index 12a18557c5fd..ec4dd9df9150 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> @@ -47,7 +47,6 @@ static const struct drm_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs hibmc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
> index d1e7ac540199..54e3255dde13 100644
> --- a/drivers/gpu/drm/i2c/tda998x_drv.c
> +++ b/drivers/gpu/drm/i2c/tda998x_drv.c
> @@ -969,14 +969,6 @@ static int tda998x_audio_codec_init(struct tda998x_priv *priv,
>   
>   /* DRM connector functions */
>   
> -static int tda998x_connector_dpms(struct drm_connector *connector, int mode)
> -{
> -	if (drm_core_check_feature(connector->dev, DRIVER_ATOMIC))
> -		return drm_atomic_helper_connector_dpms(connector, mode);
> -	else
> -		return drm_helper_connector_dpms(connector, mode);
> -}
> -
>   static int tda998x_connector_fill_modes(struct drm_connector *connector,
>   					uint32_t maxX, uint32_t maxY)
>   {
> @@ -1014,7 +1006,7 @@ static void tda998x_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tda998x_connector_funcs = {
> -	.dpms = tda998x_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = tda998x_connector_fill_modes,
>   	.detect = tda998x_connector_detect,
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index 84c3a6dc7c2a..70e0ff41070c 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -802,7 +802,6 @@ void intel_crt_reset(struct drm_encoder *encoder)
>    */
>   
>   static const struct drm_connector_funcs intel_crt_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 19b082ea57ef..76c8a0bd17f9 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5007,7 +5007,6 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
>   }
>   
>   static const struct drm_connector_funcs intel_dp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.force = intel_dp_force,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_digital_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index 59a6dfd48ed4..58568559711a 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -346,7 +346,6 @@ intel_dp_mst_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_dp_mst_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.late_register = intel_connector_register,
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 375e7cfcf207..b0b3adf016f8 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -1653,7 +1653,6 @@ static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs intel_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
>   	.destroy = intel_dsi_connector_destroy,
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> index 6b1970542911..baf369d2de30 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -344,7 +344,6 @@ static void intel_dvo_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_dvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_dvo_detect,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 3074190b9455..2ef1ee85129d 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1761,7 +1761,6 @@ static void intel_hdmi_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_hdmi_detect,
>   	.force = intel_hdmi_force,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 6579299f5d00..61d557948e21 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -595,7 +595,6 @@ static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs intel_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_lvds_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_digital_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index a8eee1984ddf..bea8152ae859 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -2193,7 +2193,6 @@ intel_sdvo_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_sdvo_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_sdvo_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index e4ef2919b682..906893c006d8 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1407,7 +1407,6 @@ intel_tv_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_tv_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
>   	.destroy = intel_tv_destroy,
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8b05ecb8fdef..56dd7a9a8e25 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -389,7 +389,6 @@ static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
>   
>   
>   static const struct drm_connector_funcs imx_ldb_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
> index 4826bb781723..bc27c2699464 100644
> --- a/drivers/gpu/drm/imx/imx-tve.c
> +++ b/drivers/gpu/drm/imx/imx-tve.c
> @@ -341,7 +341,6 @@ static int imx_tve_atomic_check(struct drm_encoder *encoder,
>   }
>   
>   static const struct drm_connector_funcs imx_tve_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index 8aca20209cb8..8def97d75030 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -135,7 +135,6 @@ static int imx_pd_encoder_atomic_check(struct drm_encoder *encoder,
>   }
>   
>   static const struct drm_connector_funcs imx_pd_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index a31bd2a82de5..7e5e24c2152a 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -766,7 +766,6 @@ static const struct drm_encoder_helper_funcs mtk_dsi_encoder_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs mtk_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index f2437cd1e0f9..690c67507cbc 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -1261,7 +1261,6 @@ static struct drm_encoder *mtk_hdmi_conn_best_enc(struct drm_connector *conn)
>   }
>   
>   static const struct drm_connector_funcs mtk_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = hdmi_conn_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = hdmi_conn_destroy,
> diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> index 00775b397dba..79d95ca8a0c0 100644
> --- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
> +++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> @@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= meson_cvbs_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= meson_cvbs_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index a879ffa534b4..855248132b2b 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -626,7 +626,6 @@ static void dsi_mgr_bridge_mode_set(struct drm_bridge *bridge,
>   }
>   
>   static const struct drm_connector_funcs dsi_mgr_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = dsi_mgr_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = dsi_mgr_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/edp/edp_connector.c b/drivers/gpu/drm/msm/edp/edp_connector.c
> index 5960628ceb93..6f3fc6b0f0a3 100644
> --- a/drivers/gpu/drm/msm/edp/edp_connector.c
> +++ b/drivers/gpu/drm/msm/edp/edp_connector.c
> @@ -92,7 +92,6 @@ static int edp_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs edp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = edp_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = edp_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> index a2515b466ce5..71536d9c7fe8 100644
> --- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> +++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> @@ -407,7 +407,6 @@ static int msm_hdmi_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> index 353429b05733..e3b1c86b7aae 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> @@ -91,7 +91,6 @@ static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs mdp4_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = mdp4_lvds_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = mdp4_lvds_connector_destroy,
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index f7d729aa09bd..e5edf016a439 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -74,7 +74,6 @@ static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs mxsfb_panel_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= mxsfb_panel_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= mxsfb_panel_connector_destroy,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
> index 2468e81918fd..5137155bf3c0 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
> @@ -1072,17 +1072,9 @@ nouveau_connector_helper_funcs = {
>   	.best_encoder = nouveau_connector_best_encoder,
>   };
>   
> -static int
> -nouveau_connector_dpms(struct drm_connector *connector, int mode)
> -{
> -	if (drm_drv_uses_atomic_modeset(connector->dev))
> -		return drm_atomic_helper_connector_dpms(connector, mode);
> -	return drm_helper_connector_dpms(connector, mode);
> -}
> -
>   static const struct drm_connector_funcs
>   nouveau_connector_funcs = {
> -	.dpms = nouveau_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nouveau_connector_detect,
>   	.force = nouveau_connector_force,
> @@ -1097,7 +1089,7 @@ nouveau_connector_funcs = {
>   
>   static const struct drm_connector_funcs
>   nouveau_connector_funcs_lvds = {
> -	.dpms = nouveau_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nouveau_connector_detect_lvds,
>   	.force = nouveau_connector_force,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index 80a96eb08bbf..d442def6c965 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -3118,7 +3118,6 @@ nv50_mstc_destroy(struct drm_connector *connector)
>   
>   static const struct drm_connector_funcs
>   nv50_mstc = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nv50_mstc_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
> index c24b6b783e9a..d1ec76ef5cc6 100644
> --- a/drivers/gpu/drm/omapdrm/omap_connector.c
> +++ b/drivers/gpu/drm/omapdrm/omap_connector.c
> @@ -195,7 +195,6 @@ static int omap_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs omap_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = omap_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/pl111/pl111_connector.c b/drivers/gpu/drm/pl111/pl111_connector.c
> index 3f213d7e7692..d335f9a29ce4 100644
> --- a/drivers/gpu/drm/pl111/pl111_connector.c
> +++ b/drivers/gpu/drm/pl111/pl111_connector.c
> @@ -69,7 +69,6 @@ const struct drm_connector_funcs connector_funcs = {
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = pl111_connector_destroy,
>   	.detect = pl111_connector_detect,
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> index ee91481131ad..b373ad48ef5f 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> @@ -46,7 +46,6 @@ static void rcar_du_lvds_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = rcar_du_lvds_connector_destroy,
> diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> index 9b0b0588bbed..a57da051f516 100644
> --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
> +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> @@ -254,7 +254,6 @@ static void cdn_dp_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs cdn_dp_atomic_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = cdn_dp_connector_detect,
>   	.destroy = cdn_dp_connector_destroy,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> index 21b9737662ae..9a20b9dc27c8 100644
> --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> @@ -1080,7 +1080,6 @@ static void dw_mipi_dsi_drm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs dw_mipi_dsi_atomic_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = dw_mipi_dsi_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
> index 7149968aa25a..bd87768dd549 100644
> --- a/drivers/gpu/drm/rockchip/inno_hdmi.c
> +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
> @@ -593,7 +593,6 @@ static void inno_hdmi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs inno_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = inno_hdmi_probe_single_connector_modes,
>   	.detect = inno_hdmi_connector_detect,
>   	.destroy = inno_hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index a51cd9f754db..852bf2293b05 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -412,7 +412,6 @@ static int sti_dvo_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_dvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = sti_dvo_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
> index d6ed909d9d75..cf65e32b5090 100644
> --- a/drivers/gpu/drm/sti/sti_hda.c
> +++ b/drivers/gpu/drm/sti/sti_hda.c
> @@ -647,7 +647,6 @@ static int sti_hda_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_hda_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
> index 21f11dfae472..30f02d2fdd03 100644
> --- a/drivers/gpu/drm/sti/sti_hdmi.c
> +++ b/drivers/gpu/drm/sti/sti_hdmi.c
> @@ -1113,7 +1113,6 @@ static int sti_hdmi_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = sti_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> index 83b7a2a025f2..f5d0d6bd1084 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> @@ -306,7 +306,6 @@ sun4i_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs sun4i_hdmi_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= sun4i_hdmi_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index 422b191faa77..550bb262943f 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -120,7 +120,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs sun4i_rgb_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= sun4i_rgb_connector_destroy,
>   	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
> index 338b9e5bb2a3..7b45ac9383ea 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_tv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
> @@ -546,7 +546,6 @@ sun4i_tv_comp_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= sun4i_tv_comp_connector_destroy,
>   	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
> index 3dea1216bafd..e4b5aedfdbd4 100644
> --- a/drivers/gpu/drm/tegra/dsi.c
> +++ b/drivers/gpu/drm/tegra/dsi.c
> @@ -815,7 +815,6 @@ tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tegra_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = tegra_dsi_connector_reset,
>   	.detect = tegra_output_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
> index 718d8db406a6..a621b0da4092 100644
> --- a/drivers/gpu/drm/tegra/hdmi.c
> +++ b/drivers/gpu/drm/tegra/hdmi.c
> @@ -902,7 +902,6 @@ tegra_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs tegra_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tegra_hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c
> index a131b44e2d6f..78ec5193741d 100644
> --- a/drivers/gpu/drm/tegra/rgb.c
> +++ b/drivers/gpu/drm/tegra/rgb.c
> @@ -88,7 +88,6 @@ static void tegra_dc_write_regs(struct tegra_dc *dc,
>   }
>   
>   static const struct drm_connector_funcs tegra_rgb_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tegra_output_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> index fb2709c0c461..e0642d05a8d3 100644
> --- a/drivers/gpu/drm/tegra/sor.c
> +++ b/drivers/gpu/drm/tegra/sor.c
> @@ -1340,7 +1340,6 @@ tegra_sor_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tegra_sor_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = tegra_sor_connector_reset,
>   	.detect = tegra_sor_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> index 28c3e2f44f64..1813a3623ce6 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> @@ -189,7 +189,6 @@ static struct drm_encoder *panel_connector_best_encoder(
>   
>   static const struct drm_connector_funcs panel_connector_funcs = {
>   	.destroy            = panel_connector_destroy,
> -	.dpms               = drm_atomic_helper_connector_dpms,
>   	.fill_modes         = drm_helper_probe_single_connector_modes,
>   	.reset              = drm_atomic_helper_connector_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> index aabfad882e23..1e2dfb1b1d6b 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> @@ -202,7 +202,6 @@ static struct drm_encoder *tfp410_connector_best_encoder(
>   
>   static const struct drm_connector_funcs tfp410_connector_funcs = {
>   	.destroy            = tfp410_connector_destroy,
> -	.dpms               = drm_atomic_helper_connector_dpms,
>   	.detect             = tfp410_connector_detect,
>   	.fill_modes         = drm_helper_probe_single_connector_modes,
>   	.reset              = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> index ec43fb7ad9e4..79b6687977d3 100644
> --- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> @@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tinydrm_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tinydrm_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> index 406d6d83b6c6..b249b79ce04a 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> @@ -265,7 +265,6 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vc4_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = vc4_hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = vc4_hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
> index 369fea5a13a1..3a9a302247a2 100644
> --- a/drivers/gpu/drm/vc4/vc4_vec.c
> +++ b/drivers/gpu/drm/vc4/vc4_vec.c
> @@ -366,7 +366,6 @@ static int vc4_vec_connector_get_modes(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vc4_vec_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = vc4_vec_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = vc4_vec_connector_destroy,
> diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
> index ffd22e5ab43a..b6d52055a11f 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_display.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
> @@ -252,7 +252,6 @@ static void virtio_gpu_conn_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs virtio_gpu_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = virtio_gpu_conn_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = virtio_gpu_conn_destroy,
> diff --git a/drivers/gpu/drm/zte/zx_hdmi.c b/drivers/gpu/drm/zte/zx_hdmi.c
> index 7e834e3eeed9..b8abb1b496ff 100644
> --- a/drivers/gpu/drm/zte/zx_hdmi.c
> +++ b/drivers/gpu/drm/zte/zx_hdmi.c
> @@ -300,7 +300,6 @@ zx_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs zx_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = zx_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/zte/zx_tvenc.c b/drivers/gpu/drm/zte/zx_tvenc.c
> index b56dc69843fc..0de1a71ca4e0 100644
> --- a/drivers/gpu/drm/zte/zx_tvenc.c
> +++ b/drivers/gpu/drm/zte/zx_tvenc.c
> @@ -269,7 +269,6 @@ static struct drm_connector_helper_funcs zx_tvenc_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs zx_tvenc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/zte/zx_vga.c b/drivers/gpu/drm/zte/zx_vga.c
> index 1e0811f775cb..3e7e33cd3dfa 100644
> --- a/drivers/gpu/drm/zte/zx_vga.c
> +++ b/drivers/gpu/drm/zte/zx_vga.c
> @@ -138,7 +138,6 @@ zx_vga_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs zx_vga_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = zx_vga_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index 619089a027ec..d2b56cc657e9 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -136,8 +136,6 @@ int drm_atomic_helper_page_flip_target(
>   				uint32_t flags,
>   				uint32_t target,
>   				struct drm_modeset_acquire_ctx *ctx);
> -int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
> -				     int mode);
>   struct drm_encoder *
>   drm_atomic_helper_best_encoder(struct drm_connector *connector);
>   
> 
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-07-25 10:07     ` Philippe CORNU
  0 siblings, 0 replies; 84+ messages in thread
From: Philippe CORNU @ 2017-07-25 10:07 UTC (permalink / raw)
  To: linus-amlogic



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
> Cc: Peter Senna Tschudin <peter.senna@collabora.com>
> Cc: Martin Donnelly <martin.donnelly@ge.com>
> Cc: Martyn Welch <martyn.welch@collabora.co.uk>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@freescale.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Carlo Caione <carlo@caione.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>

Tested-by: Philippe Cornu <philippe.cornu@st.com> (on stm)

Many thanks
Philippe :-)

> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> Cc: Yakir Yang <kuankuan.y@gmail.com>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
> Cc: Romain Perier <romain.perier@collabora.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Hai Li <hali@codeaurora.org>
> Cc: "Noralf Tr?nnes" <noralf@tronnes.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-samsung-soc at vger.kernel.org
> Cc: intel-gfx at lists.freedesktop.org
> Cc: linux-mediatek at lists.infradead.org
> Cc: linux-amlogic at lists.infradead.org
> Cc: nouveau at lists.freedesktop.org
> Cc: linux-renesas-soc at vger.kernel.org
> Cc: linux-rockchip at lists.infradead.org
> Cc: linux-tegra at vger.kernel.org
> Cc: virtualization at lists.linux-foundation.org
> Cc: zain wang <wzz@rock-chips.com>
> Cc: Baoyou Xie <baoyou.xie@linaro.org>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>   drivers/gpu/drm/bridge/analogix-anx78xx.c          |  1 -
>   drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  1 -
>   drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>   .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |  1 -
>   drivers/gpu/drm/bridge/nxp-ptn3460.c               |  1 -
>   drivers/gpu/drm/bridge/panel.c                     |  1 -
>   drivers/gpu/drm/bridge/parade-ps8622.c             |  1 -
>   drivers/gpu/drm/bridge/sii902x.c                   |  1 -
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>   drivers/gpu/drm/bridge/tc358767.c                  |  1 -
>   drivers/gpu/drm/bridge/ti-tfp410.c                 |  1 -
>   drivers/gpu/drm/drm_atomic_helper.c                | 79 ----------------------
>   drivers/gpu/drm/exynos/exynos_drm_dpi.c            |  1 -
>   drivers/gpu/drm/exynos/exynos_drm_dsi.c            |  1 -
>   drivers/gpu/drm/exynos/exynos_drm_vidi.c           |  1 -
>   drivers/gpu/drm/exynos/exynos_hdmi.c               |  1 -
>   drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |  1 -
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |  1 -
>   drivers/gpu/drm/i2c/tda998x_drv.c                  | 10 +--
>   drivers/gpu/drm/i915/intel_crt.c                   |  1 -
>   drivers/gpu/drm/i915/intel_dp.c                    |  1 -
>   drivers/gpu/drm/i915/intel_dp_mst.c                |  1 -
>   drivers/gpu/drm/i915/intel_dsi.c                   |  1 -
>   drivers/gpu/drm/i915/intel_dvo.c                   |  1 -
>   drivers/gpu/drm/i915/intel_hdmi.c                  |  1 -
>   drivers/gpu/drm/i915/intel_lvds.c                  |  1 -
>   drivers/gpu/drm/i915/intel_sdvo.c                  |  1 -
>   drivers/gpu/drm/i915/intel_tv.c                    |  1 -
>   drivers/gpu/drm/imx/imx-ldb.c                      |  1 -
>   drivers/gpu/drm/imx/imx-tve.c                      |  1 -
>   drivers/gpu/drm/imx/parallel-display.c             |  1 -
>   drivers/gpu/drm/mediatek/mtk_dsi.c                 |  1 -
>   drivers/gpu/drm/mediatek/mtk_hdmi.c                |  1 -
>   drivers/gpu/drm/meson/meson_venc_cvbs.c            |  1 -
>   drivers/gpu/drm/msm/dsi/dsi_manager.c              |  1 -
>   drivers/gpu/drm/msm/edp/edp_connector.c            |  1 -
>   drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |  1 -
>   drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |  1 -
>   drivers/gpu/drm/mxsfb/mxsfb_out.c                  |  1 -
>   drivers/gpu/drm/nouveau/nouveau_connector.c        | 12 +---
>   drivers/gpu/drm/nouveau/nv50_display.c             |  1 -
>   drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>   drivers/gpu/drm/pl111/pl111_connector.c            |  1 -
>   drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -
>   drivers/gpu/drm/rockchip/cdn-dp-core.c             |  1 -
>   drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |  1 -
>   drivers/gpu/drm/rockchip/inno_hdmi.c               |  1 -
>   drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -
>   drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |  1 -
>   drivers/gpu/drm/sun4i/sun4i_rgb.c                  |  1 -
>   drivers/gpu/drm/sun4i/sun4i_tv.c                   |  1 -
>   drivers/gpu/drm/tegra/dsi.c                        |  1 -
>   drivers/gpu/drm/tegra/hdmi.c                       |  1 -
>   drivers/gpu/drm/tegra/rgb.c                        |  1 -
>   drivers/gpu/drm/tegra/sor.c                        |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_panel.c              |  1 -
>   drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |  1 -
>   drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |  1 -
>   drivers/gpu/drm/vc4/vc4_hdmi.c                     |  1 -
>   drivers/gpu/drm/vc4/vc4_vec.c                      |  1 -
>   drivers/gpu/drm/virtio/virtgpu_display.c           |  1 -
>   drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>   drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>   drivers/gpu/drm/zte/zx_vga.c                       |  1 -
>   include/drm/drm_atomic_helper.h                    |  2 -
>   68 files changed, 3 insertions(+), 164 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> index ff9792d350c8..682c090fa3ed 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> @@ -786,7 +786,6 @@ adv7511_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static struct drm_connector_funcs adv7511_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = adv7511_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> index dc045e0c32fc..9385eb0b1ee4 100644
> --- a/drivers/gpu/drm/bridge/analogix-anx78xx.c
> +++ b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> @@ -1002,7 +1002,6 @@ static enum drm_connector_status anx78xx_detect(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs anx78xx_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = anx78xx_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 4c758ed51939..5dd3f1cd074a 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1005,7 +1005,6 @@ analogix_dp_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs analogix_dp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = analogix_dp_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/dumb-vga-dac.c b/drivers/gpu/drm/bridge/dumb-vga-dac.c
> index 8a52539e618e..de5e7dee7ad6 100644
> --- a/drivers/gpu/drm/bridge/dumb-vga-dac.c
> +++ b/drivers/gpu/drm/bridge/dumb-vga-dac.c
> @@ -92,7 +92,6 @@ dumb_vga_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs dumb_vga_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= dumb_vga_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> index 11f11086a68f..7ccadba7c98c 100644
> --- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> +++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
> @@ -193,7 +193,6 @@ static enum drm_connector_status ge_b850v3_lvds_detect(
>   }
>   
>   static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = ge_b850v3_lvds_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index f0b5d0fc8594..d64a3283822a 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -238,7 +238,6 @@ static const struct drm_connector_helper_funcs ptn3460_connector_helper_funcs =
>   };
>   
>   static const struct drm_connector_funcs ptn3460_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
> index 685c1a480201..59288b248dc5 100644
> --- a/drivers/gpu/drm/bridge/panel.c
> +++ b/drivers/gpu/drm/bridge/panel.c
> @@ -50,7 +50,6 @@ panel_bridge_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs panel_bridge_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c b/drivers/gpu/drm/bridge/parade-ps8622.c
> index 4f7725d4a309..81198f5e9afa 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -476,7 +476,6 @@ static const struct drm_connector_helper_funcs ps8622_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs ps8622_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
> index 9efb7b8fad57..b1ab4ab09532 100644
> --- a/drivers/gpu/drm/bridge/sii902x.c
> +++ b/drivers/gpu/drm/bridge/sii902x.c
> @@ -124,7 +124,6 @@ sii902x_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs sii902x_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = sii902x_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index 60faf2d2bc6b..91ac849604a8 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -1920,7 +1920,6 @@ static void dw_hdmi_connector_force(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs dw_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = dw_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index 12a35f9c3adc..503252d6a74d 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1160,7 +1160,6 @@ static const struct drm_connector_helper_funcs tc_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs tc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
> index 7ea2a15e8807..acb857030951 100644
> --- a/drivers/gpu/drm/bridge/ti-tfp410.c
> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c
> @@ -102,7 +102,6 @@ tfp410_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs tfp410_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= tfp410_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 1ca0dcca6230..877733ae44ac 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -3102,85 +3102,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc *crtc,
>   EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
>   
>   /**
> - * drm_atomic_helper_connector_dpms() - connector dpms helper implementation
> - * @connector: affected connector
> - * @mode: DPMS mode
> - *
> - * This is the main helper function provided by the atomic helper framework for
> - * implementing the legacy DPMS connector interface. It computes the new desired
> - * &drm_crtc_state.active state for the corresponding CRTC (if the connector is
> - * enabled) and updates it.
> - *
> - * Returns:
> - * Returns 0 on success, negative errno numbers on failure.
> - */
> -int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
> -				     int mode)
> -{
> -	struct drm_mode_config *config = &connector->dev->mode_config;
> -	struct drm_atomic_state *state;
> -	struct drm_crtc_state *crtc_state;
> -	struct drm_crtc *crtc;
> -	struct drm_connector *tmp_connector;
> -	struct drm_connector_list_iter conn_iter;
> -	int ret;
> -	bool active = false;
> -	int old_mode = connector->dpms;
> -
> -	if (mode != DRM_MODE_DPMS_ON)
> -		mode = DRM_MODE_DPMS_OFF;
> -
> -	connector->dpms = mode;
> -	crtc = connector->state->crtc;
> -
> -	if (!crtc)
> -		return 0;
> -
> -	state = drm_atomic_state_alloc(connector->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
> -retry:
> -	crtc_state = drm_atomic_get_crtc_state(state, crtc);
> -	if (IS_ERR(crtc_state)) {
> -		ret = PTR_ERR(crtc_state);
> -		goto fail;
> -	}
> -
> -	WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
> -
> -	drm_connector_list_iter_begin(connector->dev, &conn_iter);
> -	drm_for_each_connector_iter(tmp_connector, &conn_iter) {
> -		if (tmp_connector->state->crtc != crtc)
> -			continue;
> -
> -		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
> -			active = true;
> -			break;
> -		}
> -	}
> -	drm_connector_list_iter_end(&conn_iter);
> -	crtc_state->active = active;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -	if (ret != 0)
> -		connector->dpms = old_mode;
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_connector_dpms);
> -
> -/**
>    * drm_atomic_helper_best_encoder - Helper for
>    * 	&drm_connector_helper_funcs.best_encoder callback
>    * @connector: Connector control structure
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> index 63abcd280fa0..76d80e5de521 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
> @@ -59,7 +59,6 @@ static void exynos_dpi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs exynos_dpi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = exynos_dpi_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = exynos_dpi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index f580be170089..4ea7cc7cb3de 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -1537,7 +1537,6 @@ static void exynos_dsi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs exynos_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = exynos_dsi_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = exynos_dsi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index cb8a72842537..9186a654c3b5 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -289,7 +289,6 @@ static void vidi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vidi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = vidi_detect,
>   	.destroy = vidi_connector_destroy,
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index c953927fb0cb..0e2a472c3021 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -835,7 +835,6 @@ static void hdmi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = hdmi_detect,
>   	.destroy = hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index dcbf3c06e1d8..edd7d8127d19 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -63,7 +63,6 @@ static const struct drm_connector_funcs fsl_dcu_drm_connector_funcs = {
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>   	.destroy = fsl_dcu_drm_connector_destroy,
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.reset = drm_atomic_helper_connector_reset,
>   };
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> index 12a18557c5fd..ec4dd9df9150 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> @@ -47,7 +47,6 @@ static const struct drm_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs hibmc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
> index d1e7ac540199..54e3255dde13 100644
> --- a/drivers/gpu/drm/i2c/tda998x_drv.c
> +++ b/drivers/gpu/drm/i2c/tda998x_drv.c
> @@ -969,14 +969,6 @@ static int tda998x_audio_codec_init(struct tda998x_priv *priv,
>   
>   /* DRM connector functions */
>   
> -static int tda998x_connector_dpms(struct drm_connector *connector, int mode)
> -{
> -	if (drm_core_check_feature(connector->dev, DRIVER_ATOMIC))
> -		return drm_atomic_helper_connector_dpms(connector, mode);
> -	else
> -		return drm_helper_connector_dpms(connector, mode);
> -}
> -
>   static int tda998x_connector_fill_modes(struct drm_connector *connector,
>   					uint32_t maxX, uint32_t maxY)
>   {
> @@ -1014,7 +1006,7 @@ static void tda998x_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tda998x_connector_funcs = {
> -	.dpms = tda998x_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = tda998x_connector_fill_modes,
>   	.detect = tda998x_connector_detect,
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index 84c3a6dc7c2a..70e0ff41070c 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -802,7 +802,6 @@ void intel_crt_reset(struct drm_encoder *encoder)
>    */
>   
>   static const struct drm_connector_funcs intel_crt_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 19b082ea57ef..76c8a0bd17f9 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5007,7 +5007,6 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
>   }
>   
>   static const struct drm_connector_funcs intel_dp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.force = intel_dp_force,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_digital_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index 59a6dfd48ed4..58568559711a 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -346,7 +346,6 @@ intel_dp_mst_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_dp_mst_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.late_register = intel_connector_register,
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 375e7cfcf207..b0b3adf016f8 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -1653,7 +1653,6 @@ static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs intel_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
>   	.destroy = intel_dsi_connector_destroy,
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> index 6b1970542911..baf369d2de30 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -344,7 +344,6 @@ static void intel_dvo_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_dvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_dvo_detect,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 3074190b9455..2ef1ee85129d 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1761,7 +1761,6 @@ static void intel_hdmi_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_hdmi_detect,
>   	.force = intel_hdmi_force,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 6579299f5d00..61d557948e21 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -595,7 +595,6 @@ static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs
>   };
>   
>   static const struct drm_connector_funcs intel_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_lvds_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_digital_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index a8eee1984ddf..bea8152ae859 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -2193,7 +2193,6 @@ intel_sdvo_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = intel_sdvo_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.atomic_get_property = intel_sdvo_connector_atomic_get_property,
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index e4ef2919b682..906893c006d8 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1407,7 +1407,6 @@ intel_tv_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs intel_tv_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.late_register = intel_connector_register,
>   	.early_unregister = intel_connector_unregister,
>   	.destroy = intel_tv_destroy,
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8b05ecb8fdef..56dd7a9a8e25 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -389,7 +389,6 @@ static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
>   
>   
>   static const struct drm_connector_funcs imx_ldb_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
> index 4826bb781723..bc27c2699464 100644
> --- a/drivers/gpu/drm/imx/imx-tve.c
> +++ b/drivers/gpu/drm/imx/imx-tve.c
> @@ -341,7 +341,6 @@ static int imx_tve_atomic_check(struct drm_encoder *encoder,
>   }
>   
>   static const struct drm_connector_funcs imx_tve_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
> index 8aca20209cb8..8def97d75030 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -135,7 +135,6 @@ static int imx_pd_encoder_atomic_check(struct drm_encoder *encoder,
>   }
>   
>   static const struct drm_connector_funcs imx_pd_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = imx_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index a31bd2a82de5..7e5e24c2152a 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -766,7 +766,6 @@ static const struct drm_encoder_helper_funcs mtk_dsi_encoder_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs mtk_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index f2437cd1e0f9..690c67507cbc 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -1261,7 +1261,6 @@ static struct drm_encoder *mtk_hdmi_conn_best_enc(struct drm_connector *conn)
>   }
>   
>   static const struct drm_connector_funcs mtk_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = hdmi_conn_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = hdmi_conn_destroy,
> diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> index 00775b397dba..79d95ca8a0c0 100644
> --- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
> +++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
> @@ -118,7 +118,6 @@ static int meson_cvbs_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs meson_cvbs_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= meson_cvbs_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= meson_cvbs_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> index a879ffa534b4..855248132b2b 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
> @@ -626,7 +626,6 @@ static void dsi_mgr_bridge_mode_set(struct drm_bridge *bridge,
>   }
>   
>   static const struct drm_connector_funcs dsi_mgr_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = dsi_mgr_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = dsi_mgr_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/edp/edp_connector.c b/drivers/gpu/drm/msm/edp/edp_connector.c
> index 5960628ceb93..6f3fc6b0f0a3 100644
> --- a/drivers/gpu/drm/msm/edp/edp_connector.c
> +++ b/drivers/gpu/drm/msm/edp/edp_connector.c
> @@ -92,7 +92,6 @@ static int edp_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs edp_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = edp_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = edp_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> index a2515b466ce5..71536d9c7fe8 100644
> --- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> +++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
> @@ -407,7 +407,6 @@ static int msm_hdmi_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> index 353429b05733..e3b1c86b7aae 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c
> @@ -91,7 +91,6 @@ static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs mdp4_lvds_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = mdp4_lvds_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = mdp4_lvds_connector_destroy,
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index f7d729aa09bd..e5edf016a439 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -74,7 +74,6 @@ static void mxsfb_panel_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs mxsfb_panel_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= mxsfb_panel_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= mxsfb_panel_connector_destroy,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
> index 2468e81918fd..5137155bf3c0 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
> @@ -1072,17 +1072,9 @@ nouveau_connector_helper_funcs = {
>   	.best_encoder = nouveau_connector_best_encoder,
>   };
>   
> -static int
> -nouveau_connector_dpms(struct drm_connector *connector, int mode)
> -{
> -	if (drm_drv_uses_atomic_modeset(connector->dev))
> -		return drm_atomic_helper_connector_dpms(connector, mode);
> -	return drm_helper_connector_dpms(connector, mode);
> -}
> -
>   static const struct drm_connector_funcs
>   nouveau_connector_funcs = {
> -	.dpms = nouveau_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nouveau_connector_detect,
>   	.force = nouveau_connector_force,
> @@ -1097,7 +1089,7 @@ nouveau_connector_funcs = {
>   
>   static const struct drm_connector_funcs
>   nouveau_connector_funcs_lvds = {
> -	.dpms = nouveau_connector_dpms,
> +	.dpms = drm_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nouveau_connector_detect_lvds,
>   	.force = nouveau_connector_force,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index 80a96eb08bbf..d442def6c965 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -3118,7 +3118,6 @@ nv50_mstc_destroy(struct drm_connector *connector)
>   
>   static const struct drm_connector_funcs
>   nv50_mstc = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = nouveau_conn_reset,
>   	.detect = nv50_mstc_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
> index c24b6b783e9a..d1ec76ef5cc6 100644
> --- a/drivers/gpu/drm/omapdrm/omap_connector.c
> +++ b/drivers/gpu/drm/omapdrm/omap_connector.c
> @@ -195,7 +195,6 @@ static int omap_connector_mode_valid(struct drm_connector *connector,
>   }
>   
>   static const struct drm_connector_funcs omap_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = omap_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/pl111/pl111_connector.c b/drivers/gpu/drm/pl111/pl111_connector.c
> index 3f213d7e7692..d335f9a29ce4 100644
> --- a/drivers/gpu/drm/pl111/pl111_connector.c
> +++ b/drivers/gpu/drm/pl111/pl111_connector.c
> @@ -69,7 +69,6 @@ const struct drm_connector_funcs connector_funcs = {
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = pl111_connector_destroy,
>   	.detect = pl111_connector_detect,
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> index ee91481131ad..b373ad48ef5f 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> @@ -46,7 +46,6 @@ static void rcar_du_lvds_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = rcar_du_lvds_connector_destroy,
> diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> index 9b0b0588bbed..a57da051f516 100644
> --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
> +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> @@ -254,7 +254,6 @@ static void cdn_dp_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs cdn_dp_atomic_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = cdn_dp_connector_detect,
>   	.destroy = cdn_dp_connector_destroy,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> index 21b9737662ae..9a20b9dc27c8 100644
> --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> @@ -1080,7 +1080,6 @@ static void dw_mipi_dsi_drm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs dw_mipi_dsi_atomic_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = dw_mipi_dsi_drm_connector_destroy,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
> index 7149968aa25a..bd87768dd549 100644
> --- a/drivers/gpu/drm/rockchip/inno_hdmi.c
> +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
> @@ -593,7 +593,6 @@ static void inno_hdmi_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs inno_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = inno_hdmi_probe_single_connector_modes,
>   	.detect = inno_hdmi_connector_detect,
>   	.destroy = inno_hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c
> index a51cd9f754db..852bf2293b05 100644
> --- a/drivers/gpu/drm/sti/sti_dvo.c
> +++ b/drivers/gpu/drm/sti/sti_dvo.c
> @@ -412,7 +412,6 @@ static int sti_dvo_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_dvo_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = sti_dvo_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
> index d6ed909d9d75..cf65e32b5090 100644
> --- a/drivers/gpu/drm/sti/sti_hda.c
> +++ b/drivers/gpu/drm/sti/sti_hda.c
> @@ -647,7 +647,6 @@ static int sti_hda_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_hda_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c
> index 21f11dfae472..30f02d2fdd03 100644
> --- a/drivers/gpu/drm/sti/sti_hdmi.c
> +++ b/drivers/gpu/drm/sti/sti_hdmi.c
> @@ -1113,7 +1113,6 @@ static int sti_hdmi_late_register(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs sti_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = sti_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> index 83b7a2a025f2..f5d0d6bd1084 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
> @@ -306,7 +306,6 @@ sun4i_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs sun4i_hdmi_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.detect			= sun4i_hdmi_connector_detect,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index 422b191faa77..550bb262943f 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -120,7 +120,6 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs sun4i_rgb_con_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= sun4i_rgb_connector_destroy,
>   	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
> index 338b9e5bb2a3..7b45ac9383ea 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_tv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
> @@ -546,7 +546,6 @@ sun4i_tv_comp_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
> -	.dpms			= drm_atomic_helper_connector_dpms,
>   	.fill_modes		= drm_helper_probe_single_connector_modes,
>   	.destroy		= sun4i_tv_comp_connector_destroy,
>   	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
> index 3dea1216bafd..e4b5aedfdbd4 100644
> --- a/drivers/gpu/drm/tegra/dsi.c
> +++ b/drivers/gpu/drm/tegra/dsi.c
> @@ -815,7 +815,6 @@ tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tegra_dsi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = tegra_dsi_connector_reset,
>   	.detect = tegra_output_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
> index 718d8db406a6..a621b0da4092 100644
> --- a/drivers/gpu/drm/tegra/hdmi.c
> +++ b/drivers/gpu/drm/tegra/hdmi.c
> @@ -902,7 +902,6 @@ tegra_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs tegra_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tegra_hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c
> index a131b44e2d6f..78ec5193741d 100644
> --- a/drivers/gpu/drm/tegra/rgb.c
> +++ b/drivers/gpu/drm/tegra/rgb.c
> @@ -88,7 +88,6 @@ static void tegra_dc_write_regs(struct tegra_dc *dc,
>   }
>   
>   static const struct drm_connector_funcs tegra_rgb_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tegra_output_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> index fb2709c0c461..e0642d05a8d3 100644
> --- a/drivers/gpu/drm/tegra/sor.c
> +++ b/drivers/gpu/drm/tegra/sor.c
> @@ -1340,7 +1340,6 @@ tegra_sor_connector_duplicate_state(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tegra_sor_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = tegra_sor_connector_reset,
>   	.detect = tegra_sor_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> index 28c3e2f44f64..1813a3623ce6 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> @@ -189,7 +189,6 @@ static struct drm_encoder *panel_connector_best_encoder(
>   
>   static const struct drm_connector_funcs panel_connector_funcs = {
>   	.destroy            = panel_connector_destroy,
> -	.dpms               = drm_atomic_helper_connector_dpms,
>   	.fill_modes         = drm_helper_probe_single_connector_modes,
>   	.reset              = drm_atomic_helper_connector_reset,
>   	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> index aabfad882e23..1e2dfb1b1d6b 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
> @@ -202,7 +202,6 @@ static struct drm_encoder *tfp410_connector_best_encoder(
>   
>   static const struct drm_connector_funcs tfp410_connector_funcs = {
>   	.destroy            = tfp410_connector_destroy,
> -	.dpms               = drm_atomic_helper_connector_dpms,
>   	.detect             = tfp410_connector_detect,
>   	.fill_modes         = drm_helper_probe_single_connector_modes,
>   	.reset              = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> index ec43fb7ad9e4..79b6687977d3 100644
> --- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> @@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tinydrm_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tinydrm_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> index 406d6d83b6c6..b249b79ce04a 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> @@ -265,7 +265,6 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vc4_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = vc4_hdmi_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = vc4_hdmi_connector_destroy,
> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
> index 369fea5a13a1..3a9a302247a2 100644
> --- a/drivers/gpu/drm/vc4/vc4_vec.c
> +++ b/drivers/gpu/drm/vc4/vc4_vec.c
> @@ -366,7 +366,6 @@ static int vc4_vec_connector_get_modes(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs vc4_vec_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = vc4_vec_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = vc4_vec_connector_destroy,
> diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
> index ffd22e5ab43a..b6d52055a11f 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_display.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_display.c
> @@ -252,7 +252,6 @@ static void virtio_gpu_conn_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs virtio_gpu_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.detect = virtio_gpu_conn_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = virtio_gpu_conn_destroy,
> diff --git a/drivers/gpu/drm/zte/zx_hdmi.c b/drivers/gpu/drm/zte/zx_hdmi.c
> index 7e834e3eeed9..b8abb1b496ff 100644
> --- a/drivers/gpu/drm/zte/zx_hdmi.c
> +++ b/drivers/gpu/drm/zte/zx_hdmi.c
> @@ -300,7 +300,6 @@ zx_hdmi_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs zx_hdmi_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = zx_hdmi_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/drivers/gpu/drm/zte/zx_tvenc.c b/drivers/gpu/drm/zte/zx_tvenc.c
> index b56dc69843fc..0de1a71ca4e0 100644
> --- a/drivers/gpu/drm/zte/zx_tvenc.c
> +++ b/drivers/gpu/drm/zte/zx_tvenc.c
> @@ -269,7 +269,6 @@ static struct drm_connector_helper_funcs zx_tvenc_connector_helper_funcs = {
>   };
>   
>   static const struct drm_connector_funcs zx_tvenc_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.destroy = drm_connector_cleanup,
>   	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/zte/zx_vga.c b/drivers/gpu/drm/zte/zx_vga.c
> index 1e0811f775cb..3e7e33cd3dfa 100644
> --- a/drivers/gpu/drm/zte/zx_vga.c
> +++ b/drivers/gpu/drm/zte/zx_vga.c
> @@ -138,7 +138,6 @@ zx_vga_connector_detect(struct drm_connector *connector, bool force)
>   }
>   
>   static const struct drm_connector_funcs zx_vga_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.fill_modes = drm_helper_probe_single_connector_modes,
>   	.detect = zx_vga_connector_detect,
>   	.destroy = drm_connector_cleanup,
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index 619089a027ec..d2b56cc657e9 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -136,8 +136,6 @@ int drm_atomic_helper_page_flip_target(
>   				uint32_t flags,
>   				uint32_t target,
>   				struct drm_modeset_acquire_ctx *ctx);
> -int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
> -				     int mode);
>   struct drm_encoder *
>   drm_atomic_helper_best_encoder(struct drm_connector *connector);
>   
> 

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH] drm: Don't update property values for atomic drivers
  2017-07-25  8:01 ` [PATCH 2/8] drm: Don't update property values for atomic drivers Daniel Vetter
  2017-07-25  8:32   ` Maarten Lankhorst
@ 2017-07-25 12:01   ` Daniel Vetter
  2017-08-11 22:20   ` [PATCH 2/8] " Laurent Pinchart
  2 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25 12:01 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

Atomic drivers only use the property value store for immutable (i.e.
can't be set by userspace, but the kernel can still adjust it)
properties. The only tricky part is the removal of the update in
drm_atomic_helper_update_legacy_modeset_state().

This was added in

commit 8c10342cb48f3140d9abeadcfd2fa6625d447282 (tag: topic/drm-misc-2015-07-28)
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Mon Jul 27 13:24:29 2015 +0200

    drm/atomic: Update legacy DPMS state during modesets, v3.

by copying it from the i915 code, where it was originally added in

commit 68d3472047a572936551f8ff0b6f4016c5a1fdef
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Thu Sep 6 22:08:35 2012 +0200

    drm/i915: update dpms property in set_mode

for the legacy modeset code. The reason we needed this hack was that
i915 didn't yet set DRIVER_ATOMIC, and we checked for that instead of
the newer-ish drm_drv_uses_atomic_modeset(), which avoids such
troubles. With the correct feature checks this isn't needed anymore at
all.

Also make sure that drivers don't accidentally get this wrong by
making the exported version of drm_object_property_get_value() only
work for legacy drivers. Only gma500 uses it anyway.

v2: Fixup the uses_atomic_modeset() checks (Maarten)

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_atomic_helper.c |  4 ---
 drivers/gpu/drm/drm_connector.c     |  3 +--
 drivers/gpu/drm/drm_crtc.c          |  2 +-
 drivers/gpu/drm/drm_mode_object.c   | 49 +++++++++++++++++++++++--------------
 drivers/gpu/drm/drm_plane.c         |  2 +-
 5 files changed, 33 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 7582bbc5decc..4a960c741e35 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -921,16 +921,12 @@ drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
 		crtc = new_conn_state->crtc;
 		if ((!crtc && old_conn_state->crtc) ||
 		    (crtc && drm_atomic_crtc_needs_modeset(crtc->state))) {
-			struct drm_property *dpms_prop =
-				dev->mode_config.dpms_property;
 			int mode = DRM_MODE_DPMS_OFF;
 
 			if (crtc && crtc->state->active)
 				mode = DRM_MODE_DPMS_ON;
 
 			connector->dpms = mode;
-			drm_object_property_set_value(&connector->base,
-						      dpms_prop, mode);
 		}
 	}
 
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 8072e6e4c62c..0e9e3161bdd0 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1225,8 +1225,7 @@ int drm_mode_connector_set_obj_prop(struct drm_mode_object *obj,
 	} else if (connector->funcs->set_property)
 		ret = connector->funcs->set_property(connector, property, value);
 
-	/* store the property value if successful */
-	if (!ret)
+	if (!ret && !drm_drv_uses_atomic_modeset(property->dev))
 		drm_object_property_set_value(&connector->base, property, value);
 	return ret;
 }
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 5af25ce5bf7c..9271235d84b0 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -736,7 +736,7 @@ int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj,
 
 	if (crtc->funcs->set_property)
 		ret = crtc->funcs->set_property(crtc, property, value);
-	if (!ret)
+	if (!ret && !drm_drv_uses_atomic_modeset(property->dev))
 		drm_object_property_set_value(obj, property, value);
 
 	return ret;
diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
index da9a9adbcc98..92743a796bf0 100644
--- a/drivers/gpu/drm/drm_mode_object.c
+++ b/drivers/gpu/drm/drm_mode_object.c
@@ -233,6 +233,9 @@ int drm_object_property_set_value(struct drm_mode_object *obj,
 {
 	int i;
 
+	WARN_ON(drm_drv_uses_atomic_modeset(property->dev) &&
+		!(property->flags & DRM_MODE_PROP_IMMUTABLE));
+
 	for (i = 0; i < obj->properties->count; i++) {
 		if (obj->properties->properties[i] == property) {
 			obj->properties->values[i] = val;
@@ -244,24 +247,7 @@ int drm_object_property_set_value(struct drm_mode_object *obj,
 }
 EXPORT_SYMBOL(drm_object_property_set_value);
 
-/**
- * drm_object_property_get_value - retrieve the value of a property
- * @obj: drm mode object to get property value from
- * @property: property to retrieve
- * @val: storage for the property value
- *
- * This function retrieves the softare state of the given property for the given
- * property. Since there is no driver callback to retrieve the current property
- * value this might be out of sync with the hardware, depending upon the driver
- * and property.
- *
- * Atomic drivers should never call this function directly, the core will read
- * out property values through the various ->atomic_get_property callbacks.
- *
- * Returns:
- * Zero on success, error code on failure.
- */
-int drm_object_property_get_value(struct drm_mode_object *obj,
+int __drm_object_property_get_value(struct drm_mode_object *obj,
 				  struct drm_property *property, uint64_t *val)
 {
 	int i;
@@ -284,6 +270,31 @@ int drm_object_property_get_value(struct drm_mode_object *obj,
 
 	return -EINVAL;
 }
+
+/**
+ * drm_object_property_get_value - retrieve the value of a property
+ * @obj: drm mode object to get property value from
+ * @property: property to retrieve
+ * @val: storage for the property value
+ *
+ * This function retrieves the softare state of the given property for the given
+ * property. Since there is no driver callback to retrieve the current property
+ * value this might be out of sync with the hardware, depending upon the driver
+ * and property.
+ *
+ * Atomic drivers should never call this function directly, the core will read
+ * out property values through the various ->atomic_get_property callbacks.
+ *
+ * Returns:
+ * Zero on success, error code on failure.
+ */
+int drm_object_property_get_value(struct drm_mode_object *obj,
+				  struct drm_property *property, uint64_t *val)
+{
+	WARN_ON(drm_drv_uses_atomic_modeset(property->dev));
+
+	return __drm_object_property_get_value(obj, property, val);
+}
 EXPORT_SYMBOL(drm_object_property_get_value);
 
 /* helper for getconnector and getproperties ioctls */
@@ -302,7 +313,7 @@ int drm_mode_object_get_properties(struct drm_mode_object *obj, bool atomic,
 			continue;
 
 		if (*arg_count_props > count) {
-			ret = drm_object_property_get_value(obj, prop, &val);
+			ret = __drm_object_property_get_value(obj, prop, &val);
 			if (ret)
 				return ret;
 
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index 5dc8c4350602..186416f5e4c5 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -330,7 +330,7 @@ int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
 
 	if (plane->funcs->set_property)
 		ret = plane->funcs->set_property(plane, property, value);
-	if (!ret)
+	if (!ret && !drm_drv_uses_atomic_modeset(property->dev))
 		drm_object_property_set_value(obj, property, value);
 
 	return ret;
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* [PATCH] drm: Handle properties in the core for atomic drivers
  2017-07-25  8:01 ` [PATCH 3/8] drm: Handle properties in the core " Daniel Vetter
  2017-07-25  9:36   ` Archit Taneja
@ 2017-07-25 12:02   ` Daniel Vetter
  1 sibling, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-07-25 12:02 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

The reason behind the original indirection through the helper
functions was to allow existing drivers to overwrite how they handle
properties. For example when a vendor-specific userspace had
expectations that didn't match atomic. That seemed likely, since
atomic is standardizing a _lot_ more of the behaviour of a kms driver.

But 20 drivers later there's no such need at all. Worse, this forces
all drivers to hook up the default behaviour, breaking userspace if
they forget to do that. And it forces us to export a bunch of core
function just for those helpers.

And finally, these helpers are the last places using
drm_atomic_legacy_backoff() and the implicit acquire_ctx.

This patch here just implements the new behaviour and updates the
docs. Follow-up patches will garbage-collect all the dead code.

v2: Fixup docs even better!

v3: Make it actually work ...

v4: Drop the uses_atomic_modeset() checks from the previous patch
again, since they're now moved up in the callchain.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Archit Taneja <architt@codeaurora.org> (v3)
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_atomic.c        |  60 ++++++++++++++++++--
 drivers/gpu/drm/drm_connector.c     |   8 +--
 drivers/gpu/drm/drm_crtc.c          |   2 +-
 drivers/gpu/drm/drm_crtc_helper.c   |   3 +-
 drivers/gpu/drm/drm_crtc_internal.h |   7 +++
 drivers/gpu/drm/drm_mode_object.c   | 110 +++++++++++++++++++++++++++---------
 drivers/gpu/drm/drm_plane.c         |   2 +-
 include/drm/drm_connector.h         |  10 ++--
 include/drm/drm_crtc.h              |   6 +-
 include/drm/drm_plane.h             |   6 +-
 10 files changed, 161 insertions(+), 53 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 01192dd3ed79..0fd14aff7add 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1864,9 +1864,60 @@ static struct drm_pending_vblank_event *create_vblank_event(
 	return e;
 }
 
-static int atomic_set_prop(struct drm_atomic_state *state,
-		struct drm_mode_object *obj, struct drm_property *prop,
-		uint64_t prop_value)
+int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
+				     struct drm_connector *connector,
+				     int mode)
+{
+	struct drm_connector *tmp_connector;
+	struct drm_connector_state *new_conn_state;
+	struct drm_crtc *crtc;
+	struct drm_crtc_state *crtc_state;
+	int i, ret, old_mode = connector->dpms;
+	bool active = false;
+
+	ret = drm_modeset_lock(&state->dev->mode_config.connection_mutex,
+			       state->acquire_ctx);
+	if (ret)
+		return ret;
+
+	if (mode != DRM_MODE_DPMS_ON)
+		mode = DRM_MODE_DPMS_OFF;
+	connector->dpms = mode;
+
+	crtc = connector->state->crtc;
+	if (!crtc)
+		goto out;
+	ret = drm_atomic_add_affected_connectors(state, crtc);
+	if (ret)
+		goto out;
+
+	crtc_state = drm_atomic_get_crtc_state(state, crtc);
+	if (IS_ERR(crtc_state)) {
+		ret = PTR_ERR(crtc_state);
+		goto out;
+	}
+
+	for_each_new_connector_in_state(state, tmp_connector, new_conn_state, i) {
+		if (new_conn_state->crtc != crtc)
+			continue;
+		if (tmp_connector->dpms == DRM_MODE_DPMS_ON) {
+			active = true;
+			break;
+		}
+	}
+
+	crtc_state->active = active;
+	ret = drm_atomic_commit(state);
+out:
+	if (ret != 0)
+		connector->dpms = old_mode;
+	return ret;
+}
+
+int drm_atomic_set_property(struct drm_atomic_state *state,
+			    struct drm_mode_object *obj,
+			    struct drm_property *prop,
+			    uint64_t prop_value)
 {
 	struct drm_mode_object *ref;
 	int ret;
@@ -2286,7 +2337,8 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
 				goto out;
 			}
 
-			ret = atomic_set_prop(state, obj, prop, prop_value);
+			ret = drm_atomic_set_property(state, obj, prop,
+						      prop_value);
 			if (ret) {
 				drm_mode_object_put(obj);
 				goto out;
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 0e9e3161bdd0..ba9f36cef68c 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -717,9 +717,9 @@ DRM_ENUM_NAME_FN(drm_get_tv_subconnector_name,
  * 	drivers, it remaps to controlling the "ACTIVE" property on the CRTC the
  * 	connector is linked to. Drivers should never set this property directly,
  * 	it is handled by the DRM core by calling the &drm_connector_funcs.dpms
- * 	callback. Atomic drivers should implement this hook using
- * 	drm_atomic_helper_connector_dpms(). This is the only property standard
- * 	connector property that userspace can change.
+ * 	callback. For atomic drivers the remapping to the "ACTIVE" property is
+ * 	implemented in the DRM core.  This is the only standard connector
+ * 	property that userspace can change.
  * PATH:
  * 	Connector path property to identify how this sink is physically
  * 	connected. Used by DP MST. This should be set by calling
@@ -1225,7 +1225,7 @@ int drm_mode_connector_set_obj_prop(struct drm_mode_object *obj,
 	} else if (connector->funcs->set_property)
 		ret = connector->funcs->set_property(connector, property, value);
 
-	if (!ret && !drm_drv_uses_atomic_modeset(property->dev))
+	if (!ret)
 		drm_object_property_set_value(&connector->base, property, value);
 	return ret;
 }
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 9271235d84b0..5af25ce5bf7c 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -736,7 +736,7 @@ int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj,
 
 	if (crtc->funcs->set_property)
 		ret = crtc->funcs->set_property(crtc, property, value);
-	if (!ret && !drm_drv_uses_atomic_modeset(property->dev))
+	if (!ret)
 		drm_object_property_set_value(obj, property, value);
 
 	return ret;
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 4afdf7902eda..eab36a460638 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -863,8 +863,7 @@ static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
  * provided by the driver.
  *
  * This function is deprecated.  New drivers must implement atomic modeset
- * support, for which this function is unsuitable. Instead drivers should use
- * drm_atomic_helper_connector_dpms().
+ * support, where DPMS is handled in the DRM core.
  *
  * Returns:
  * Always returns 0.
diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h
index d077c5490041..a43582076b20 100644
--- a/drivers/gpu/drm/drm_crtc_internal.h
+++ b/drivers/gpu/drm/drm_crtc_internal.h
@@ -178,6 +178,13 @@ struct drm_minor;
 int drm_atomic_debugfs_init(struct drm_minor *minor);
 #endif
 
+int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
+				     struct drm_connector *connector,
+				     int mode);
+int drm_atomic_set_property(struct drm_atomic_state *state,
+			    struct drm_mode_object *obj,
+			    struct drm_property *prop,
+			    uint64_t prop_value);
 int drm_atomic_get_property(struct drm_mode_object *obj,
 			    struct drm_property *property, uint64_t *val);
 int drm_mode_atomic_ioctl(struct drm_device *dev,
diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
index 92743a796bf0..1055533792f3 100644
--- a/drivers/gpu/drm/drm_mode_object.c
+++ b/drivers/gpu/drm/drm_mode_object.c
@@ -392,6 +392,83 @@ struct drm_property *drm_mode_obj_find_prop_id(struct drm_mode_object *obj,
 	return NULL;
 }
 
+static int set_property_legacy(struct drm_mode_object *obj,
+			       struct drm_property *prop,
+			       uint64_t prop_value)
+{
+	struct drm_device *dev = prop->dev;
+	struct drm_mode_object *ref;
+	int ret = -EINVAL;
+
+	if (!drm_property_change_valid_get(prop, prop_value, &ref))
+		return -EINVAL;
+
+	drm_modeset_lock_all(dev);
+	switch (obj->type) {
+	case DRM_MODE_OBJECT_CONNECTOR:
+		ret = drm_mode_connector_set_obj_prop(obj, prop,
+						      prop_value);
+		break;
+	case DRM_MODE_OBJECT_CRTC:
+		ret = drm_mode_crtc_set_obj_prop(obj, prop, prop_value);
+		break;
+	case DRM_MODE_OBJECT_PLANE:
+		ret = drm_mode_plane_set_obj_prop(obj_to_plane(obj),
+						  prop, prop_value);
+		break;
+	}
+	drm_property_change_valid_put(prop, ref);
+	drm_modeset_unlock_all(dev);
+
+	return ret;
+}
+
+static int set_property_atomic(struct drm_mode_object *obj,
+			       struct drm_property *prop,
+			       uint64_t prop_value)
+{
+	struct drm_device *dev = prop->dev;
+	struct drm_atomic_state *state;
+	struct drm_modeset_acquire_ctx ctx;
+	int ret;
+
+	drm_modeset_acquire_init(&ctx, 0);
+
+	state = drm_atomic_state_alloc(dev);
+	if (!state)
+		return -ENOMEM;
+	state->acquire_ctx = &ctx;
+retry:
+	if (prop == state->dev->mode_config.dpms_property) {
+		if (obj->type != DRM_MODE_OBJECT_CONNECTOR) {
+			ret = -EINVAL;
+			goto out;
+		}
+
+		ret = drm_atomic_connector_commit_dpms(state,
+						       obj_to_connector(obj),
+						       prop_value);
+	} else {
+		ret = drm_atomic_set_property(state, obj, prop, prop_value);
+		if (ret)
+			goto out;
+		ret = drm_atomic_commit(state);
+	}
+out:
+	if (ret == -EDEADLK) {
+		drm_atomic_state_clear(state);
+		drm_modeset_backoff(&ctx);
+		goto retry;
+	}
+
+	drm_atomic_state_put(state);
+
+	drm_modeset_drop_locks(&ctx);
+	drm_modeset_acquire_fini(&ctx);
+
+	return ret;
+}
+
 int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
 				    struct drm_file *file_priv)
 {
@@ -399,18 +476,13 @@ int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
 	struct drm_mode_object *arg_obj;
 	struct drm_property *property;
 	int ret = -EINVAL;
-	struct drm_mode_object *ref;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
 
-	drm_modeset_lock_all(dev);
-
 	arg_obj = drm_mode_object_find(dev, arg->obj_id, arg->obj_type);
-	if (!arg_obj) {
-		ret = -ENOENT;
-		goto out;
-	}
+	if (!arg_obj)
+		return -ENOENT;
 
 	if (!arg_obj->properties)
 		goto out_unref;
@@ -419,28 +491,12 @@ int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
 	if (!property)
 		goto out_unref;
 
-	if (!drm_property_change_valid_get(property, arg->value, &ref))
-		goto out_unref;
-
-	switch (arg_obj->type) {
-	case DRM_MODE_OBJECT_CONNECTOR:
-		ret = drm_mode_connector_set_obj_prop(arg_obj, property,
-						      arg->value);
-		break;
-	case DRM_MODE_OBJECT_CRTC:
-		ret = drm_mode_crtc_set_obj_prop(arg_obj, property, arg->value);
-		break;
-	case DRM_MODE_OBJECT_PLANE:
-		ret = drm_mode_plane_set_obj_prop(obj_to_plane(arg_obj),
-						  property, arg->value);
-		break;
-	}
-
-	drm_property_change_valid_put(property, ref);
+	if (drm_drv_uses_atomic_modeset(property->dev))
+		ret = set_property_atomic(arg_obj, property, arg->value);
+	else
+		ret = set_property_legacy(arg_obj, property, arg->value);
 
 out_unref:
 	drm_mode_object_put(arg_obj);
-out:
-	drm_modeset_unlock_all(dev);
 	return ret;
 }
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index 186416f5e4c5..5dc8c4350602 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -330,7 +330,7 @@ int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
 
 	if (plane->funcs->set_property)
 		ret = plane->funcs->set_property(plane, property, value);
-	if (!ret && !drm_drv_uses_atomic_modeset(property->dev))
+	if (!ret)
 		drm_object_property_set_value(obj, property, value);
 
 	return ret;
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 4bc088269d05..ea8da401c93c 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -382,8 +382,8 @@ struct drm_connector_funcs {
 	 * implement the 4 level DPMS support on the connector any more, but
 	 * instead only have an on/off "ACTIVE" property on the CRTC object.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_connector_dpms() to implement this hook.
+	 * This hook is not used by atomic drivers, remapping of the legacy DPMS
+	 * property is entirely handled in the DRM core.
 	 *
 	 * RETURNS:
 	 *
@@ -480,11 +480,9 @@ struct drm_connector_funcs {
 	 * This is the legacy entry point to update a property attached to the
 	 * connector.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_connector_set_property() to implement this hook.
-	 *
 	 * This callback is optional if the driver does not support any legacy
-	 * driver-private properties.
+	 * driver-private properties. For atomic drivers it is not used because
+	 * property handling is done entirely in the DRM core.
 	 *
 	 * RETURNS:
 	 *
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 3a911a64c257..9c01f94b393c 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -481,11 +481,9 @@ struct drm_crtc_funcs {
 	 * This is the legacy entry point to update a property attached to the
 	 * CRTC.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_crtc_set_property() to implement this hook.
-	 *
 	 * This callback is optional if the driver does not support any legacy
-	 * driver-private properties.
+	 * driver-private properties. For atomic drivers it is not used because
+	 * property handling is done entirely in the DRM core.
 	 *
 	 * RETURNS:
 	 *
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
index 9ab3e7044812..204c213810df 100644
--- a/include/drm/drm_plane.h
+++ b/include/drm/drm_plane.h
@@ -233,11 +233,9 @@ struct drm_plane_funcs {
 	 * This is the legacy entry point to update a property attached to the
 	 * plane.
 	 *
-	 * Drivers implementing atomic modeset should use
-	 * drm_atomic_helper_plane_set_property() to implement this hook.
-	 *
 	 * This callback is optional if the driver does not support any legacy
-	 * driver-private properties.
+	 * driver-private properties. For atomic drivers it is not used because
+	 * property handling is done entirely in the DRM core.
 	 *
 	 * RETURNS:
 	 *
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* ✗ Fi.CI.BAT: failure for acquire ctx for everyone! (rev3)
  2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
                   ` (8 preceding siblings ...)
  2017-07-25  8:44 ` ✓ Fi.CI.BAT: success for acquire ctx for everyone! Patchwork
@ 2017-07-25 12:05 ` Patchwork
  9 siblings, 0 replies; 84+ messages in thread
From: Patchwork @ 2017-07-25 12:05 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

== Series Details ==

Series: acquire ctx for everyone! (rev3)
URL   : https://patchwork.freedesktop.org/series/27835/
State : failure

== Summary ==

  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CHK     scripts/mod/devicetable-offsets.h
  CHK     include/generated/compile.h
  CHK     kernel/config_data.h
  CC [M]  drivers/gpu/drm/i915/intel_hangcheck.o
In file included from drivers/gpu/drm/i915/intel_hangcheck.c:485:0:
drivers/gpu/drm/i915/selftests/intel_hangcheck.c: In function ‘igt_render_engine_reset_fallback’:
drivers/gpu/drm/i915/selftests/intel_hangcheck.c:845:3: error: too few arguments to function ‘i915_reset’
   i915_reset(i915);
   ^~~~~~~~~~
In file included from drivers/gpu/drm/i915/intel_hangcheck.c:25:0:
drivers/gpu/drm/i915/i915_drv.h:3115:13: note: declared here
 extern void i915_reset(struct drm_i915_private *i915, unsigned int flags);
             ^~~~~~~~~~
scripts/Makefile.build:302: recipe for target 'drivers/gpu/drm/i915/intel_hangcheck.o' failed
make[4]: *** [drivers/gpu/drm/i915/intel_hangcheck.o] Error 1
scripts/Makefile.build:561: recipe for target 'drivers/gpu/drm/i915' failed
make[3]: *** [drivers/gpu/drm/i915] Error 2
scripts/Makefile.build:561: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:561: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1019: recipe for target 'drivers' failed
make: *** [drivers] Error 2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (9 preceding siblings ...)
  (?)
@ 2017-07-25 14:01   ` Laurent Pinchart
  -1 siblings, 0 replies; 84+ messages in thread
From: Laurent Pinchart @ 2017-07-25 14:01 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: nopsys.com, one.org, Martyn Welch, Neil Armstrong, nouveau,
	DRI Development, virtualization, Tomi Valkeinen, linux-mediatek,
	Gerd Hoffmann, Romain Perier, Daniel Vetter, Jyri Sarha,
	Marek Vasut, linux-renesas-soc, Kevin Hilman, Alexey Brodkin,
	Russell King, Krzysztof Kozlowski, Jonathan Hunter, Xinliang Liu,
	linux-rockchip, Chen-Yu Tsai, Kukjin Kim

Hi Daniel,

Thank you for the patch.

On Tuesday 25 Jul 2017 10:01:21 Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[snip]

> ---
>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>  drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>  drivers/gpu/drm/bridge/panel.c                     |  1 -
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>  drivers/gpu/drm/drm_atomic_helper.c                | 79 -------------------
>  drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -

For the above,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (8 preceding siblings ...)
  (?)
@ 2017-07-25 14:01   ` Laurent Pinchart
  -1 siblings, 0 replies; 84+ messages in thread
From: Laurent Pinchart @ 2017-07-25 14:01 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: nopsys.com, one.org, Martyn Welch, Neil Armstrong, David Airlie,
	nouveau, DRI Development, virtualization, Andrzej Hajda,
	Tomi Valkeinen, linux-mediatek, Benjamin Gaignard, Romain Perier,
	Daniel Vetter, Jyri Sarha, Heiko Stuebner, Marek Vasut,
	linux-renesas-soc, Archit Taneja, Lars-Peter Clausen,
	Joonyoung Shim, Kevin Hilman, Alexey Brodkin

Hi Daniel,

Thank you for the patch.

On Tuesday 25 Jul 2017 10:01:21 Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[snip]

> ---
>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |  1 -
>  drivers/gpu/drm/bridge/dumb-vga-dac.c              |  1 -
>  drivers/gpu/drm/bridge/panel.c                     |  1 -
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |  1 -
>  drivers/gpu/drm/drm_atomic_helper.c                | 79 -------------------
>  drivers/gpu/drm/omapdrm/omap_connector.c           |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |  1 -

For the above,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-07-25 14:42     ` Shawn Guo
  -1 siblings, 0 replies; 84+ messages in thread
From: Shawn Guo @ 2017-07-25 14:42 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Martyn Welch, Neil Armstrong, nouveau, DRI Development,
	virtualization, Tomi Valkeinen, linux-mediatek, Laurent Pinchart,
	Romain Perier, Daniel Vetter, Jyri Sarha, Marek Vasut,
	linux-renesas-soc, Kevin Hilman, Alexey Brodkin, Russell King,
	Krzysztof Kozlowski, Jonathan Hunter, Xinliang Liu,
	linux-rockchip, Chen-Yu Tsai, Kukjin Kim, Peter Senna Tschudin

On Tue, Jul 25, 2017 at 10:01:21AM +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
...
>  drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>  drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>  drivers/gpu/drm/zte/zx_vga.c                       |  1 -

Acked-by: Shawn Guo <shawnguo@kernel.org>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (10 preceding siblings ...)
  (?)
@ 2017-07-25 14:42   ` Shawn Guo
  -1 siblings, 0 replies; 84+ messages in thread
From: Shawn Guo @ 2017-07-25 14:42 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Martyn Welch, Neil Armstrong, David Airlie, nouveau,
	DRI Development, virtualization, Andrzej Hajda, Tomi Valkeinen,
	linux-mediatek, Laurent Pinchart, Benjamin Gaignard,
	Romain Perier, Daniel Vetter, Jyri Sarha, Heiko Stuebner,
	Marek Vasut, linux-renesas-soc, Archit Taneja,
	Lars-Peter Clausen, Joonyoung Shim, Kevin Hilman, Alexey Brodkin,
	Russell

On Tue, Jul 25, 2017 at 10:01:21AM +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
...
>  drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>  drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>  drivers/gpu/drm/zte/zx_vga.c                       |  1 -

Acked-by: Shawn Guo <shawnguo@kernel.org>

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-07-25 14:42     ` Shawn Guo
  0 siblings, 0 replies; 84+ messages in thread
From: Shawn Guo @ 2017-07-25 14:42 UTC (permalink / raw)
  To: linus-amlogic

On Tue, Jul 25, 2017 at 10:01:21AM +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
...
>  drivers/gpu/drm/zte/zx_hdmi.c                      |  1 -
>  drivers/gpu/drm/zte/zx_tvenc.c                     |  1 -
>  drivers/gpu/drm/zte/zx_vga.c                       |  1 -

Acked-by: Shawn Guo <shawnguo@kernel.org>

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-07-26 19:00     ` Noralf Trønnes
  -1 siblings, 0 replies; 84+ messages in thread
From: Noralf Trønnes @ 2017-07-26 19:00 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, nouveau, DRI Development,
	virtualization, Tomi Valkeinen, Laurent Pinchart, Romain Perier,
	Daniel Vetter, Jyri Sarha, Marek Vasut, linux-renesas-soc,
	Kevin Hilman, Alexey Brodkin, Russell King, Krzysztof Kozlowski,
	Jonathan Hunter, Xinliang Liu, linux-rockchip, Chen-Yu Tsai,
	Kukjin Kim, Peter Senna Tschudin


Den 25.07.2017 10.01, skrev Daniel Vetter:
> It's dead code, the core handles all this directly now.
>
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
>
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
...
> diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> index ec43fb7ad9e4..79b6687977d3 100644
> --- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> @@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tinydrm_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tinydrm_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,

Acked-by: Noralf Trønnes <noralf@tronnes.org>

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (12 preceding siblings ...)
  (?)
@ 2017-07-26 19:00   ` Noralf Trønnes
  -1 siblings, 0 replies; 84+ messages in thread
From: Noralf Trønnes @ 2017-07-26 19:00 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, David Airlie, nouveau,
	DRI Development, virtualization, Andrzej Hajda, Tomi Valkeinen,
	Laurent Pinchart, Benjamin Gaignard, Romain Perier,
	Daniel Vetter, Jyri Sarha, Heiko Stuebner, Marek Vasut,
	linux-renesas-soc, Archit Taneja, Lars-Peter Clausen,
	Joonyoung Shim, Kevin Hilman, Alexey Brodkin, Russell King, Krzy


Den 25.07.2017 10.01, skrev Daniel Vetter:
> It's dead code, the core handles all this directly now.
>
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
>
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
...
> diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> index ec43fb7ad9e4..79b6687977d3 100644
> --- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> @@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tinydrm_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tinydrm_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,

Acked-by: Noralf Trønnes <noralf@tronnes.org>

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-07-26 19:00     ` Noralf Trønnes
  0 siblings, 0 replies; 84+ messages in thread
From: Noralf Trønnes @ 2017-07-26 19:00 UTC (permalink / raw)
  To: linus-amlogic


Den 25.07.2017 10.01, skrev Daniel Vetter:
> It's dead code, the core handles all this directly now.
>
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
>
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
...
> diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> index ec43fb7ad9e4..79b6687977d3 100644
> --- a/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
> @@ -71,7 +71,6 @@ static void tinydrm_connector_destroy(struct drm_connector *connector)
>   }
>   
>   static const struct drm_connector_funcs tinydrm_connector_funcs = {
> -	.dpms = drm_atomic_helper_connector_dpms,
>   	.reset = drm_atomic_helper_connector_reset,
>   	.detect = tinydrm_connector_detect,
>   	.fill_modes = drm_helper_probe_single_connector_modes,

Acked-by: Noralf Tr?nnes <noralf@tronnes.org>

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
  2017-07-25  8:01   ` Daniel Vetter
  (?)
@ 2017-07-28 16:45     ` Liviu Dudau
  -1 siblings, 0 replies; 84+ messages in thread
From: Liviu Dudau @ 2017-07-28 16:45 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Intel Graphics Development, DRI Development, Daniel Vetter,
	Brian Starkey, Mali DP Maintainers, Boris Brezillon, Jani Nikula,
	Sean Paul, David Airlie, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
	Kyungmin Park, Kukjin Kim, Krzysztof Kozlowski, Ben Skeggs,
	Tomi Valkeinen, Laurent Pinchart, Benjamin Gaignard,
	Vincent Abriou, Yannick Fertre, Philippe Cornu, Jyri Sarha,
	Ville Syrjälä,
	Rongrong Zou, Shawn Guo, Alexey Brodkin, Eric Engestrom,
	Chris Wilson, Rob Clark, Archit Taneja, linux-arm-kernel,
	linux-samsung-soc, nouveau, linux-renesas-soc, Thomas Hellstrom,
	Maxime Ripard

On Tue, Jul 25, 2017 at 10:01:19AM +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>  drivers/gpu/drm/drm_atomic.c                    |  3 +-
>  drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>  drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>  drivers/gpu/drm/i915/intel_display.c            |  2 -
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>  drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>  drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>  drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>  drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>  drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>  drivers/gpu/drm/stm/ltdc.c                      |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>  include/drm/drm_atomic.h                        |  3 --
>  include/drm/drm_atomic_helper.h                 |  3 --
>  20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>  static const struct drm_plane_funcs malidp_de_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = malidp_de_plane_destroy,
>  	.reset = malidp_plane_reset,
>  	.atomic_duplicate_state = malidp_duplicate_plane_state,

For mali-dp changes:
Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>

I'm assuming the series goes through drm-next tree.

Thanks,
Liviu

> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>  static struct drm_plane_funcs layer_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = atmel_hlcdc_plane_destroy,
>  	.reset = atmel_hlcdc_plane_reset,
>  	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>   * RETURNS:
>   * Zero on success, error code on failure
>   */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>  		struct drm_plane_state *state, struct drm_property *property,
>  		uint64_t val)
>  {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>  
>  /**
>   * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>  EXPORT_SYMBOL(drm_atomic_helper_resume);
>  
>  /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>   * drm_atomic_helper_connector_set_property - helper for connector properties
>   * @connector: DRM connector
>   * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
>  	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>  	.reset		= exynos_drm_plane_reset,
>  	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>  	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>  static struct drm_plane_funcs hibmc_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>  static struct drm_plane_funcs ade_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_get_property = intel_plane_atomic_get_property,
>  	.atomic_set_property = intel_plane_atomic_set_property,
>  	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>  	.update_plane = intel_legacy_cursor_update,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_get_property = intel_plane_atomic_get_property,
>  	.atomic_set_property = intel_plane_atomic_set_property,
>  	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>  		.update_plane = drm_atomic_helper_update_plane,
>  		.disable_plane = drm_atomic_helper_disable_plane,
>  		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>  		.atomic_set_property = mdp5_plane_atomic_set_property,
>  		.atomic_get_property = mdp5_plane_atomic_get_property,
>  		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>  		.update_plane = mdp5_update_cursor_plane_legacy,
>  		.disable_plane = drm_atomic_helper_disable_plane,
>  		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>  		.atomic_set_property = mdp5_plane_atomic_set_property,
>  		.atomic_get_property = mdp5_plane_atomic_get_property,
>  		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = nv50_wndw_destroy,
>  	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>  	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>  };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = omap_plane_reset,
>  	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>  	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>  	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>  	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
>  	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>  	.reset		= drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>  struct drm_plane_state * __must_check
>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>  struct drm_connector_state * __must_check
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>  int drm_atomic_helper_resume(struct drm_device *dev,
>  			     struct drm_atomic_state *state);
>  
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>  int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>  					struct drm_property *property,
>  					uint64_t val);
> -- 
> 2.13.3
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-28 16:45     ` Liviu Dudau
  0 siblings, 0 replies; 84+ messages in thread
From: Liviu Dudau @ 2017-07-28 16:45 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: nouveau, DRI Development, Laurent Pinchart, Daniel Vetter,
	Boris Brezillon, linux-samsung-soc, Alexey Brodkin,
	Krzysztof Kozlowski, Tomi Valkeinen, Mali DP Maintainers,
	Ben Skeggs, Thomas Hellstrom, Intel Graphics Development,
	Eric Engestrom, linux-renesas-soc, Jyri Sarha, Vincent Abriou,
	linux-arm-kernel, Seung-Woo Kim, Philippe Cornu, Yannick Fertre,
	Kyungmin Park

On Tue, Jul 25, 2017 at 10:01:19AM +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>  drivers/gpu/drm/drm_atomic.c                    |  3 +-
>  drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>  drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>  drivers/gpu/drm/i915/intel_display.c            |  2 -
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>  drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>  drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>  drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>  drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>  drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>  drivers/gpu/drm/stm/ltdc.c                      |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>  include/drm/drm_atomic.h                        |  3 --
>  include/drm/drm_atomic_helper.h                 |  3 --
>  20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>  static const struct drm_plane_funcs malidp_de_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = malidp_de_plane_destroy,
>  	.reset = malidp_plane_reset,
>  	.atomic_duplicate_state = malidp_duplicate_plane_state,

For mali-dp changes:
Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>

I'm assuming the series goes through drm-next tree.

Thanks,
Liviu

> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>  static struct drm_plane_funcs layer_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = atmel_hlcdc_plane_destroy,
>  	.reset = atmel_hlcdc_plane_reset,
>  	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>   * RETURNS:
>   * Zero on success, error code on failure
>   */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>  		struct drm_plane_state *state, struct drm_property *property,
>  		uint64_t val)
>  {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>  
>  /**
>   * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>  EXPORT_SYMBOL(drm_atomic_helper_resume);
>  
>  /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>   * drm_atomic_helper_connector_set_property - helper for connector properties
>   * @connector: DRM connector
>   * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
>  	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>  	.reset		= exynos_drm_plane_reset,
>  	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>  	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>  static struct drm_plane_funcs hibmc_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>  static struct drm_plane_funcs ade_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_get_property = intel_plane_atomic_get_property,
>  	.atomic_set_property = intel_plane_atomic_set_property,
>  	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>  	.update_plane = intel_legacy_cursor_update,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_get_property = intel_plane_atomic_get_property,
>  	.atomic_set_property = intel_plane_atomic_set_property,
>  	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>  		.update_plane = drm_atomic_helper_update_plane,
>  		.disable_plane = drm_atomic_helper_disable_plane,
>  		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>  		.atomic_set_property = mdp5_plane_atomic_set_property,
>  		.atomic_get_property = mdp5_plane_atomic_get_property,
>  		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>  		.update_plane = mdp5_update_cursor_plane_legacy,
>  		.disable_plane = drm_atomic_helper_disable_plane,
>  		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>  		.atomic_set_property = mdp5_plane_atomic_set_property,
>  		.atomic_get_property = mdp5_plane_atomic_get_property,
>  		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = nv50_wndw_destroy,
>  	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>  	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>  };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = omap_plane_reset,
>  	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>  	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>  	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>  	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
>  	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>  	.reset		= drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>  struct drm_plane_state * __must_check
>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>  struct drm_connector_state * __must_check
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>  int drm_atomic_helper_resume(struct drm_device *dev,
>  			     struct drm_atomic_state *state);
>  
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>  int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>  					struct drm_property *property,
>  					uint64_t val);
> -- 
> 2.13.3
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-07-28 16:45     ` Liviu Dudau
  0 siblings, 0 replies; 84+ messages in thread
From: Liviu Dudau @ 2017-07-28 16:45 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jul 25, 2017 at 10:01:19AM +0200, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrj?l?" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-samsung-soc at vger.kernel.org
> Cc: intel-gfx at lists.freedesktop.org
> Cc: nouveau at lists.freedesktop.org
> Cc: linux-renesas-soc at vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>  drivers/gpu/drm/drm_atomic.c                    |  3 +-
>  drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>  drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>  drivers/gpu/drm/i915/intel_display.c            |  2 -
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>  drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>  drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>  drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>  drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>  drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>  drivers/gpu/drm/stm/ltdc.c                      |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>  include/drm/drm_atomic.h                        |  3 --
>  include/drm/drm_atomic_helper.h                 |  3 --
>  20 files changed, 1 insertion(+), 81 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
> index 600fa7bd7f52..0f0f8234fe21 100644
> --- a/drivers/gpu/drm/arm/malidp_planes.c
> +++ b/drivers/gpu/drm/arm/malidp_planes.c
> @@ -128,7 +128,6 @@ static void malidp_plane_atomic_print_state(struct drm_printer *p,
>  static const struct drm_plane_funcs malidp_de_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = malidp_de_plane_destroy,
>  	.reset = malidp_plane_reset,
>  	.atomic_duplicate_state = malidp_duplicate_plane_state,

For mali-dp changes:
Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>

I'm assuming the series goes through drm-next tree.

Thanks,
Liviu

> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> index b5bd9b005225..9cd9e23e75c6 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
> @@ -1052,7 +1052,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(struct drm_plane *p,
>  static struct drm_plane_funcs layer_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = atmel_hlcdc_plane_destroy,
>  	.reset = atmel_hlcdc_plane_reset,
>  	.atomic_duplicate_state = atmel_hlcdc_plane_atomic_duplicate_state,
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 0fd14aff7add..395438a7a576 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -713,7 +713,7 @@ EXPORT_SYMBOL(drm_atomic_get_plane_state);
>   * RETURNS:
>   * Zero on success, error code on failure
>   */
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> +static int drm_atomic_plane_set_property(struct drm_plane *plane,
>  		struct drm_plane_state *state, struct drm_property *property,
>  		uint64_t val)
>  {
> @@ -770,7 +770,6 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>  
>  	return 0;
>  }
> -EXPORT_SYMBOL(drm_atomic_plane_set_property);
>  
>  /**
>   * drm_atomic_plane_get_property - get property value from plane state
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 22245aa8b1aa..0482e39a7889 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>  EXPORT_SYMBOL(drm_atomic_helper_resume);
>  
>  /**
> - * drm_atomic_helper_plane_set_property - helper for plane properties
> - * @plane: DRM plane
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default plane set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_plane_state *plane_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(plane->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = plane->dev->mode_config.acquire_ctx;
> -retry:
> -	plane_state = drm_atomic_get_plane_state(state, plane);
> -	if (IS_ERR(plane_state)) {
> -		ret = PTR_ERR(plane_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_plane_set_property(plane, plane_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_plane_set_property);
> -
> -/**
>   * drm_atomic_helper_connector_set_property - helper for connector properties
>   * @connector: DRM connector
>   * @property: DRM property
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> index 611b6fd65433..5e686ee74900 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
> @@ -173,7 +173,6 @@ static struct drm_plane_funcs exynos_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
>  	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>  	.reset		= exynos_drm_plane_reset,
>  	.atomic_duplicate_state = exynos_drm_plane_duplicate_state,
>  	.atomic_destroy_state = exynos_drm_plane_destroy_state,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> index 54a4542a40f1..0bbd3c3480ee 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
> @@ -150,7 +150,6 @@ static const u32 channel_formats1[] = {
>  static struct drm_plane_funcs hibmc_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 961551135a39..8df42fddd8f7 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -889,7 +889,6 @@ static const struct drm_plane_helper_funcs ade_plane_helper_funcs = {
>  static struct drm_plane_funcs ade_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index b4d0c5298a53..e908982f6864 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12649,7 +12649,6 @@ const struct drm_plane_funcs intel_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_get_property = intel_plane_atomic_get_property,
>  	.atomic_set_property = intel_plane_atomic_set_property,
>  	.atomic_duplicate_state = intel_plane_duplicate_state,
> @@ -12784,7 +12783,6 @@ static const struct drm_plane_funcs intel_cursor_plane_funcs = {
>  	.update_plane = intel_legacy_cursor_update,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = intel_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_get_property = intel_plane_atomic_get_property,
>  	.atomic_set_property = intel_plane_atomic_set_property,
>  	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> index fe3a4de1a433..a60750b66b47 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
> @@ -246,7 +246,6 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
>  		.update_plane = drm_atomic_helper_update_plane,
>  		.disable_plane = drm_atomic_helper_disable_plane,
>  		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>  		.atomic_set_property = mdp5_plane_atomic_set_property,
>  		.atomic_get_property = mdp5_plane_atomic_get_property,
>  		.reset = mdp5_plane_reset,
> @@ -259,7 +258,6 @@ static const struct drm_plane_funcs mdp5_cursor_plane_funcs = {
>  		.update_plane = mdp5_update_cursor_plane_legacy,
>  		.disable_plane = drm_atomic_helper_disable_plane,
>  		.destroy = mdp5_plane_destroy,
> -		.set_property = drm_atomic_helper_plane_set_property,
>  		.atomic_set_property = mdp5_plane_atomic_set_property,
>  		.atomic_get_property = mdp5_plane_atomic_get_property,
>  		.reset = mdp5_plane_reset,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index aa6fc525c539..e2029f05bf7b 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1055,7 +1055,6 @@ nv50_wndw = {
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = nv50_wndw_destroy,
>  	.reset = nv50_wndw_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_duplicate_state = nv50_wndw_atomic_duplicate_state,
>  	.atomic_destroy_state = nv50_wndw_atomic_destroy_state,
>  };
> diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
> index 2160f64548e0..c29b66a36907 100644
> --- a/drivers/gpu/drm/omapdrm/omap_plane.c
> +++ b/drivers/gpu/drm/omapdrm/omap_plane.c
> @@ -235,7 +235,6 @@ static const struct drm_plane_funcs omap_plane_funcs = {
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = omap_plane_reset,
>  	.destroy = omap_plane_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
>  	.atomic_set_property = omap_plane_atomic_set_property,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> index dcde6288da6c..985ce332eb0a 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c
> @@ -698,7 +698,6 @@ static const struct drm_plane_funcs rcar_du_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = rcar_du_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.atomic_duplicate_state = rcar_du_plane_atomic_duplicate_state,
>  	.atomic_destroy_state = rcar_du_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..caa82f2f2567 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -383,7 +383,6 @@ static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.reset = rcar_du_vsp_plane_reset,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.destroy = drm_plane_cleanup,
>  	.atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state,
>  	.atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_cursor.c b/drivers/gpu/drm/sti/sti_cursor.c
> index 5b3a41f74f21..9baa5e62a8e5 100644
> --- a/drivers/gpu/drm/sti/sti_cursor.c
> +++ b/drivers/gpu/drm/sti/sti_cursor.c
> @@ -348,7 +348,6 @@ static const struct drm_plane_funcs sti_cursor_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_cursor_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_gdp.c b/drivers/gpu/drm/sti/sti_gdp.c
> index 5ee0503945c8..66c5224011d2 100644
> --- a/drivers/gpu/drm/sti/sti_gdp.c
> +++ b/drivers/gpu/drm/sti/sti_gdp.c
> @@ -895,7 +895,6 @@ static const struct drm_plane_funcs sti_gdp_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_gdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/sti/sti_hqvdp.c b/drivers/gpu/drm/sti/sti_hqvdp.c
> index 53a46dda8bd5..bec3ccfec3b5 100644
> --- a/drivers/gpu/drm/sti/sti_hqvdp.c
> +++ b/drivers/gpu/drm/sti/sti_hqvdp.c
> @@ -1276,7 +1276,6 @@ static const struct drm_plane_funcs sti_hqvdp_plane_helpers_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = sti_hqvdp_destroy,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = sti_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 04cc66d6b96f..76820bcbfed0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -697,7 +697,6 @@ static const struct drm_plane_funcs ltdc_plane_funcs = {
>  	.update_plane = drm_atomic_helper_update_plane,
>  	.disable_plane = drm_atomic_helper_disable_plane,
>  	.destroy = drm_plane_cleanup,
> -	.set_property = drm_atomic_helper_plane_set_property,
>  	.reset = drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index ba0d66c0d8ac..7667b038ae7f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -28,7 +28,6 @@ static struct drm_plane_funcs tilcdc_plane_funcs = {
>  	.update_plane	= drm_atomic_helper_update_plane,
>  	.disable_plane	= drm_atomic_helper_disable_plane,
>  	.destroy	= drm_plane_cleanup,
> -	.set_property	= drm_atomic_helper_plane_set_property,
>  	.reset		= drm_atomic_helper_plane_reset,
>  	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 7cd0f303f5a3..1f6a2c768e4b 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -315,9 +315,6 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
>  struct drm_plane_state * __must_check
>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  			   struct drm_plane *plane);
> -int drm_atomic_plane_set_property(struct drm_plane *plane,
> -		struct drm_plane_state *state, struct drm_property *property,
> -		uint64_t val);
>  struct drm_connector_state * __must_check
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			       struct drm_connector *connector);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index e5c835d94540..a62aeb816dd8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>  int drm_atomic_helper_resume(struct drm_device *dev,
>  			     struct drm_atomic_state *state);
>  
> -int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
> -					struct drm_property *property,
> -					uint64_t val);
>  int drm_atomic_helper_connector_set_property(struct drm_connector *connector,
>  					struct drm_property *property,
>  					uint64_t val);
> -- 
> 2.13.3
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ?\_(?)_/?

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
  2017-07-25  8:47   ` Maarten Lankhorst
@ 2017-07-31 10:54   ` Daniel Vetter
  2017-07-31 11:57     ` Laurent Pinchart
  2017-07-31 12:45   ` Daniel Vetter
  2017-07-31 15:42   ` Daniel Vetter
  3 siblings, 1 reply; 84+ messages in thread
From: Daniel Vetter @ 2017-07-31 10:54 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Tomi Valkeinen, Laurent Pinchart, Daniel Vetter

I want/need to rework the core property handling, and this hack is
getting in the way. But since it's a non-standard propety only used by
legacy userspace we know that this will only every be called from
ioctl code. And never on some other free-standing state struct, where
this old hack wouldn't work either.

v2: don't forget zorder and get_property!

v3: Shadow the legacy state to avoid locking issues in get_property
(Maarten).

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/omapdrm/omap_crtc.c | 84 +++++++++++++++++++++----------------
 drivers/gpu/drm/omapdrm/omap_drv.h  |  9 ++++
 2 files changed, 57 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 14e8a7738b06..fc8b25748f10 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -498,39 +498,34 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
-static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
-	struct drm_property *property)
-{
-	struct drm_device *dev = crtc->dev;
-	struct omap_drm_private *priv = dev->dev_private;
-
-	return property == priv->zorder_prop ||
-		property == crtc->primary->rotation_property;
-}
-
 static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
 					 struct drm_crtc_state *state,
 					 struct drm_property *property,
 					 uint64_t val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		struct drm_plane_state *plane_state;
-		struct drm_plane *plane = crtc->primary;
-
-		/*
-		 * Delegate property set to the primary plane. Get the plane
-		 * state and set the property directly.
-		 */
-
-		plane_state = drm_atomic_get_plane_state(state->state, plane);
-		if (IS_ERR(plane_state))
-			return PTR_ERR(plane_state);
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+	struct drm_plane_state *plane_state;
 
-		return drm_atomic_plane_set_property(plane, plane_state,
-				property, val);
+	/*
+	 * Delegate property set to the primary plane. Get the plane
+	 * state and set the property directly.
+	 */
+	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
+	if (IS_ERR(plane_state))
+		return PTR_ERR(plane_state);
+
+	if (property == crtc->primary->rotation_property) {
+		plane_state->rotation = val;
+		omap_state->rotation = val;
+	} else if (property == priv->zorder_prop) {
+		plane_state->zpos = val;
+		omap_state->zpos = val;
+	} else {
+		return -EINVAL;
 	}
 
-	return -EINVAL;
+	return 0;
 }
 
 static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
@@ -538,20 +533,37 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
 					 struct drm_property *property,
 					 uint64_t *val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		/*
-		 * Delegate property get to the primary plane. The
-		 * drm_atomic_plane_get_property() function isn't exported, but
-		 * can be called through drm_object_property_get_value() as that
-		 * will call drm_atomic_get_property() for atomic drivers.
-		 */
-		return drm_object_property_get_value(&crtc->primary->base,
-				property, val);
-	}
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+
+	/*
+	 * Remap to the plane rotation/zorder property. We can peek at the plane
+	 * state directly since holding the crtc locks gives you a read-lock on
+	 * the plane state.
+	 */
+	if (property == crtc->primary->rotation_property)
+		return omap_state->rotation;
+	else if (property == priv->zorder_prop)
+		return omap_state->zpos;
 
 	return -EINVAL;
 }
 
+static struct drm_crtc_state *
+omap_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct omap_crtc_state *state;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	state = kmalloc(sizeof(*state), GFP_KERNEL);
+	if (state)
+		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	return &state->base;
+}
+
 static const struct drm_crtc_funcs omap_crtc_funcs = {
 	.reset = drm_atomic_helper_crtc_reset,
 	.set_config = drm_atomic_helper_set_config,
@@ -559,7 +571,7 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
 	.page_flip = drm_atomic_helper_page_flip,
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
 	.set_property = drm_atomic_helper_crtc_set_property,
-	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
+	.atomic_duplicate_state = omap_crtc_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 	.atomic_set_property = omap_crtc_atomic_set_property,
 	.atomic_get_property = omap_crtc_atomic_get_property,
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index 4bd1e9070b31..11703c174cd8 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -115,6 +115,15 @@ static inline void omap_fbdev_free(struct drm_device *dev)
 }
 #endif
 
+struct omap_crtc_state {
+	/* must be first */
+	struct drm_crtc_state base;
+	/* shadow values for legacy userspace support */
+	unsigned int rotation;
+	unsigned int zpos;
+};
+#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)
+
 struct videomode *omap_crtc_timings(struct drm_crtc *crtc);
 enum omap_channel omap_crtc_channel(struct drm_crtc *crtc);
 void omap_crtc_pre_init(void);
-- 
2.9.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack
  2017-07-25  9:24     ` [Intel-gfx] " Daniel Vetter
@ 2017-07-31 11:48       ` Laurent Pinchart
  2017-07-31 11:56         ` Tomi Valkeinen
  0 siblings, 1 reply; 84+ messages in thread
From: Laurent Pinchart @ 2017-07-31 11:48 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Daniel Vetter, Intel Graphics Development, Tomi Valkeinen,
	DRI Development

Hi Daniel,

On Tuesday 25 Jul 2017 11:24:28 Daniel Vetter wrote:
> On Tue, Jul 25, 2017 at 10:47 AM, Maarten Lankhorst wrote:
> > Op 25-07-17 om 10:01 schreef Daniel Vetter:
> >> I want/need to rework the core property handling, and this hack is
> >> getting in the way. But since it's a non-standard propety only used by
> >> legacy userspace we know that this will only every be called from
> >> ioctl code. And never on some other free-standing state struct, where
> >> this old hack wouldn't work either.
> >> 
> >> v2: don't forget zorder and get_property!
> >> 
> >> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> >> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> >> ---
> >> 
> >>  drivers/gpu/drm/omapdrm/omap_crtc.c | 64 ++++++++++---------------------
> >>  1 file changed, 28 insertions(+), 36 deletions(-)

[snip]

> > The comment about read lock is only valid when the plane is bound to the
> > crtc. In general this is not always the case. You can only peak at
> > plane->state when crtc->state->plane_mask & BIT(drm_plane_index(plane))
> > is true.
> > 
> > I think we might need -EDEADLK handling for getprop then, even though it's
> > not optimal. :(
>
> Well both the old an new way only worked because we grab all the locks
> unconditionally. And I'd really want to avoid get_prop being anything
> but a simple lookup. Unfortuantely that breaks omapdrm, so no idea
> what exactly to do here.
> 
> In a way adding properties without standardizing them across drivers
> first was a really bad idea, because then we have disjoint sets of
> uapi expectations, and there's just no way to make that work.
> 
> I guess one radical approach might be to make this the "standard", and
> just redirect rotation from the CRTC to the primary plane.
> 
> Or omapdrm needs to duplicate the property properly, and update one if
> the other is set. I think that's probably the most workable approach.

Maybe the first question we should answer is whether this hack is still needed 
in the omapdrm driver. Tomi, do you know whether userspace still needs this ?

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack
  2017-07-31 11:48       ` Laurent Pinchart
@ 2017-07-31 11:56         ` Tomi Valkeinen
  0 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2017-07-31 11:56 UTC (permalink / raw)
  To: Laurent Pinchart, Daniel Vetter
  Cc: Daniel Vetter, Intel Graphics Development, DRI Development


[-- Attachment #1.1.1: Type: text/plain, Size: 1420 bytes --]

On 31/07/17 14:48, Laurent Pinchart wrote:

>>> The comment about read lock is only valid when the plane is bound to the
>>> crtc. In general this is not always the case. You can only peak at
>>> plane->state when crtc->state->plane_mask & BIT(drm_plane_index(plane))
>>> is true.
>>>
>>> I think we might need -EDEADLK handling for getprop then, even though it's
>>> not optimal. :(
>>
>> Well both the old an new way only worked because we grab all the locks
>> unconditionally. And I'd really want to avoid get_prop being anything
>> but a simple lookup. Unfortuantely that breaks omapdrm, so no idea
>> what exactly to do here.
>>
>> In a way adding properties without standardizing them across drivers
>> first was a really bad idea, because then we have disjoint sets of
>> uapi expectations, and there's just no way to make that work.
>>
>> I guess one radical approach might be to make this the "standard", and
>> just redirect rotation from the CRTC to the primary plane.
>>
>> Or omapdrm needs to duplicate the property properly, and update one if
>> the other is set. I think that's probably the most workable approach.
> 
> Maybe the first question we should answer is whether this hack is still needed 
> in the omapdrm driver. Tomi, do you know whether userspace still needs this ?

The omap X driver uses legacy modesetting and the rotation property for
the crtc.

 Tomi


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-07-31 10:54   ` [PATCH] drm/omap: Rework " Daniel Vetter
@ 2017-07-31 11:57     ` Laurent Pinchart
  0 siblings, 0 replies; 84+ messages in thread
From: Laurent Pinchart @ 2017-07-31 11:57 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Tomi Valkeinen, DRI Development

Hi Daniel,

Thank you for the patch.

On Monday 31 Jul 2017 12:54:19 Daniel Vetter wrote:
> I want/need to rework the core property handling, and this hack is
> getting in the way. But since it's a non-standard propety only used by

s/propety/property/

> legacy userspace we know that this will only every be called from
> ioctl code. And never on some other free-standing state struct, where
> this old hack wouldn't work either.
> 
> v2: don't forget zorder and get_property!
> 
> v3: Shadow the legacy state to avoid locking issues in get_property
> (Maarten).
> 
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/omapdrm/omap_crtc.c | 84 ++++++++++++++++++----------------
>  drivers/gpu/drm/omapdrm/omap_drv.h  |  9 ++++
>  2 files changed, 57 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c
> b/drivers/gpu/drm/omapdrm/omap_crtc.c index 14e8a7738b06..fc8b25748f10
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -498,39 +498,34 @@ static void omap_crtc_atomic_flush(struct drm_crtc
> *crtc, spin_unlock_irq(&crtc->dev->event_lock);
>  }
> 
> -static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
> -	struct drm_property *property)
> -{
> -	struct drm_device *dev = crtc->dev;
> -	struct omap_drm_private *priv = dev->dev_private;
> -
> -	return property == priv->zorder_prop ||
> -		property == crtc->primary->rotation_property;
> -}
> -
>  static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
>  					 struct drm_crtc_state *state,
>  					 struct drm_property *property,
>  					 uint64_t val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		struct drm_plane_state *plane_state;
> -		struct drm_plane *plane = crtc->primary;
> -
> -		/*
> -		 * Delegate property set to the primary plane. Get the plane
> -		 * state and set the property directly.
> -		 */
> -
> -		plane_state = drm_atomic_get_plane_state(state->state, plane);
> -		if (IS_ERR(plane_state))
> -			return PTR_ERR(plane_state);
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
> +	struct drm_plane_state *plane_state;
> 
> -		return drm_atomic_plane_set_property(plane, plane_state,
> -				property, val);
> +	/*
> +	 * Delegate property set to the primary plane. Get the plane
> +	 * state and set the property directly.

Nitpicking, you can reformat the comment to go towards the 80 columns limit.

> +	 */
> +	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
> +	if (IS_ERR(plane_state))
> +		return PTR_ERR(plane_state);
> +
> +	if (property == crtc->primary->rotation_property) {
> +		plane_state->rotation = val;
> +		omap_state->rotation = val;
> +	} else if (property == priv->zorder_prop) {
> +		plane_state->zpos = val;
> +		omap_state->zpos = val;
> +	} else {
> +		return -EINVAL;
>  	}
> 
> -	return -EINVAL;
> +	return 0;
>  }
> 
>  static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
> @@ -538,20 +533,37 @@ static int omap_crtc_atomic_get_property(struct
> drm_crtc *crtc, struct drm_property *property,
>  					 uint64_t *val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		/*
> -		 * Delegate property get to the primary plane. The
> -		 * drm_atomic_plane_get_property() function isn't exported, 
but
> -		 * can be called through drm_object_property_get_value() as 
that
> -		 * will call drm_atomic_get_property() for atomic drivers.
> -		 */
> -		return drm_object_property_get_value(&crtc->primary->base,
> -				property, val);
> -	}
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
> +
> +	/*
> +	 * Remap to the plane rotation/zorder property. We can peek at the 
plane
> +	 * state directly since holding the crtc locks gives you a read-lock 
on
> +	 * the plane state.

Isn't this comment outdated ?

> +	 */
> +	if (property == crtc->primary->rotation_property)
> +		return omap_state->rotation;
> +	else if (property == priv->zorder_prop)
> +		return omap_state->zpos;
> 
>  	return -EINVAL;
>  }
> 
> +static struct drm_crtc_state *
> +omap_crtc_duplicate_state(struct drm_crtc *crtc)
> +{
> +	struct omap_crtc_state *state;
> +
> +	if (WARN_ON(!crtc->state))
> +		return NULL;
> +
> +	state = kmalloc(sizeof(*state), GFP_KERNEL);
> +	if (state)
> +		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);

No need to copy the zpos and rotation fields ?

> +	return &state->base;
> +}
> +
>  static const struct drm_crtc_funcs omap_crtc_funcs = {
>  	.reset = drm_atomic_helper_crtc_reset,
>  	.set_config = drm_atomic_helper_set_config,
> @@ -559,7 +571,7 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
>  	.page_flip = drm_atomic_helper_page_flip,
>  	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>  	.set_property = drm_atomic_helper_crtc_set_property,
> -	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
> +	.atomic_duplicate_state = omap_crtc_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
>  	.atomic_set_property = omap_crtc_atomic_set_property,
>  	.atomic_get_property = omap_crtc_atomic_get_property,
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h
> b/drivers/gpu/drm/omapdrm/omap_drv.h index 4bd1e9070b31..11703c174cd8
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.h
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.h
> @@ -115,6 +115,15 @@ static inline void omap_fbdev_free(struct drm_device
> *dev) }
>  #endif
> 
> +struct omap_crtc_state {
> +	/* must be first */

Capitalizing comments would be appreciated :-)

> +	struct drm_crtc_state base;
> +	/* shadow values for legacy userspace support */
> +	unsigned int rotation;
> +	unsigned int zpos;
> +};
> +#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)

Could you please define this structure in omap_crtc.c, as it's internal to the 
CRTC handling code ?

>  struct videomode *omap_crtc_timings(struct drm_crtc *crtc);
>  enum omap_channel omap_crtc_channel(struct drm_crtc *crtc);
>  void omap_crtc_pre_init(void);

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
  2017-07-25  8:47   ` Maarten Lankhorst
  2017-07-31 10:54   ` [PATCH] drm/omap: Rework " Daniel Vetter
@ 2017-07-31 12:45   ` Daniel Vetter
  2017-07-31 13:30     ` Laurent Pinchart
  2017-07-31 15:42   ` Daniel Vetter
  3 siblings, 1 reply; 84+ messages in thread
From: Daniel Vetter @ 2017-07-31 12:45 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Tomi Valkeinen, Laurent Pinchart, Daniel Vetter

I want/need to rework the core property handling, and this hack is
getting in the way. But since it's a non-standard propety only used by
legacy userspace we know that this will only every be called from
ioctl code. And never on some other free-standing state struct, where
this old hack wouldn't work either.

v2: don't forget zorder and get_property!

v3: Shadow the legacy state to avoid locking issues in get_property
(Maarten).

v4: Review from Laurent
- Move struct omap_crtc_state into omap_crtc.c
- Clean up comments.
- Don't forget to copy the shadowed state over on duplicate.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/omapdrm/omap_crtc.c | 95 +++++++++++++++++++++++--------------
 1 file changed, 59 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 14e8a7738b06..16d8b291921b 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -26,6 +26,16 @@
 
 #include "omap_drv.h"
 
+#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)
+
+struct omap_crtc_state {
+	/* Must be first. */
+	struct drm_crtc_state base;
+	/* Shadow values for legacy userspace support. */
+	unsigned int rotation;
+	unsigned int zpos;
+};
+
 #define to_omap_crtc(x) container_of(x, struct omap_crtc, base)
 
 struct omap_crtc {
@@ -498,39 +508,35 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
-static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
-	struct drm_property *property)
-{
-	struct drm_device *dev = crtc->dev;
-	struct omap_drm_private *priv = dev->dev_private;
-
-	return property == priv->zorder_prop ||
-		property == crtc->primary->rotation_property;
-}
-
 static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
 					 struct drm_crtc_state *state,
 					 struct drm_property *property,
 					 uint64_t val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		struct drm_plane_state *plane_state;
-		struct drm_plane *plane = crtc->primary;
-
-		/*
-		 * Delegate property set to the primary plane. Get the plane
-		 * state and set the property directly.
-		 */
-
-		plane_state = drm_atomic_get_plane_state(state->state, plane);
-		if (IS_ERR(plane_state))
-			return PTR_ERR(plane_state);
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+	struct drm_plane_state *plane_state;
 
-		return drm_atomic_plane_set_property(plane, plane_state,
-				property, val);
+	/*
+	 * Delegate property set to the primary plane. Get the plane state and
+	 * set the property directly, but keep a shadow copy for the
+	 * atomic_get_property callback.
+	 */
+	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
+	if (IS_ERR(plane_state))
+		return PTR_ERR(plane_state);
+
+	if (property == crtc->primary->rotation_property) {
+		plane_state->rotation = val;
+		omap_state->rotation = val;
+	} else if (property == priv->zorder_prop) {
+		plane_state->zpos = val;
+		omap_state->zpos = val;
+	} else {
+		return -EINVAL;
 	}
 
-	return -EINVAL;
+	return 0;
 }
 
 static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
@@ -538,20 +544,37 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
 					 struct drm_property *property,
 					 uint64_t *val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		/*
-		 * Delegate property get to the primary plane. The
-		 * drm_atomic_plane_get_property() function isn't exported, but
-		 * can be called through drm_object_property_get_value() as that
-		 * will call drm_atomic_get_property() for atomic drivers.
-		 */
-		return drm_object_property_get_value(&crtc->primary->base,
-				property, val);
-	}
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+
+	if (property == crtc->primary->rotation_property)
+		return omap_state->rotation;
+	else if (property == priv->zorder_prop)
+		return omap_state->zpos;
 
 	return -EINVAL;
 }
 
+static struct drm_crtc_state *
+omap_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct omap_crtc_state *state, *current_state;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	current_state = to_omap_crtc_state(crtc->state);
+
+	state = kmalloc(sizeof(*state), GFP_KERNEL);
+	if (state)
+		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	state->zpos = current_state->zpos;
+	state->rotation = current_state->rotation;
+
+	return &state->base;
+}
+
 static const struct drm_crtc_funcs omap_crtc_funcs = {
 	.reset = drm_atomic_helper_crtc_reset,
 	.set_config = drm_atomic_helper_set_config,
@@ -559,7 +582,7 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
 	.page_flip = drm_atomic_helper_page_flip,
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
 	.set_property = drm_atomic_helper_crtc_set_property,
-	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
+	.atomic_duplicate_state = omap_crtc_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 	.atomic_set_property = omap_crtc_atomic_set_property,
 	.atomic_get_property = omap_crtc_atomic_get_property,
-- 
2.9.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-07-31 12:45   ` Daniel Vetter
@ 2017-07-31 13:30     ` Laurent Pinchart
  0 siblings, 0 replies; 84+ messages in thread
From: Laurent Pinchart @ 2017-07-31 13:30 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Tomi Valkeinen, DRI Development

Hi Daniel,

Thank you for the patch.

On Monday 31 Jul 2017 14:45:16 Daniel Vetter wrote:
> I want/need to rework the core property handling, and this hack is
> getting in the way. But since it's a non-standard propety only used by
> legacy userspace we know that this will only every be called from
> ioctl code. And never on some other free-standing state struct, where
> this old hack wouldn't work either.
> 
> v2: don't forget zorder and get_property!
> 
> v3: Shadow the legacy state to avoid locking issues in get_property
> (Maarten).
> 
> v4: Review from Laurent
> - Move struct omap_crtc_state into omap_crtc.c
> - Clean up comments.
> - Don't forget to copy the shadowed state over on duplicate.
> 
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

I wish we could do better, but I think that's the best we can achieve without 
removing the hack.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  drivers/gpu/drm/omapdrm/omap_crtc.c | 95 ++++++++++++++++++++--------------
>  1 file changed, 59 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c
> b/drivers/gpu/drm/omapdrm/omap_crtc.c index 14e8a7738b06..16d8b291921b
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -26,6 +26,16 @@
> 
>  #include "omap_drv.h"
> 
> +#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)
> +
> +struct omap_crtc_state {
> +	/* Must be first. */
> +	struct drm_crtc_state base;
> +	/* Shadow values for legacy userspace support. */
> +	unsigned int rotation;
> +	unsigned int zpos;
> +};
> +
>  #define to_omap_crtc(x) container_of(x, struct omap_crtc, base)
> 
>  struct omap_crtc {
> @@ -498,39 +508,35 @@ static void omap_crtc_atomic_flush(struct drm_crtc
> *crtc, spin_unlock_irq(&crtc->dev->event_lock);
>  }
> 
> -static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
> -	struct drm_property *property)
> -{
> -	struct drm_device *dev = crtc->dev;
> -	struct omap_drm_private *priv = dev->dev_private;
> -
> -	return property == priv->zorder_prop ||
> -		property == crtc->primary->rotation_property;
> -}
> -
>  static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
>  					 struct drm_crtc_state *state,
>  					 struct drm_property *property,
>  					 uint64_t val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		struct drm_plane_state *plane_state;
> -		struct drm_plane *plane = crtc->primary;
> -
> -		/*
> -		 * Delegate property set to the primary plane. Get the plane
> -		 * state and set the property directly.
> -		 */
> -
> -		plane_state = drm_atomic_get_plane_state(state->state, plane);
> -		if (IS_ERR(plane_state))
> -			return PTR_ERR(plane_state);
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
> +	struct drm_plane_state *plane_state;
> 
> -		return drm_atomic_plane_set_property(plane, plane_state,
> -				property, val);
> +	/*
> +	 * Delegate property set to the primary plane. Get the plane state and
> +	 * set the property directly, but keep a shadow copy for the
> +	 * atomic_get_property callback.
> +	 */
> +	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
> +	if (IS_ERR(plane_state))
> +		return PTR_ERR(plane_state);
> +
> +	if (property == crtc->primary->rotation_property) {
> +		plane_state->rotation = val;
> +		omap_state->rotation = val;
> +	} else if (property == priv->zorder_prop) {
> +		plane_state->zpos = val;
> +		omap_state->zpos = val;
> +	} else {
> +		return -EINVAL;
>  	}
> 
> -	return -EINVAL;
> +	return 0;
>  }
> 
>  static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
> @@ -538,20 +544,37 @@ static int omap_crtc_atomic_get_property(struct
> drm_crtc *crtc, struct drm_property *property,
>  					 uint64_t *val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		/*
> -		 * Delegate property get to the primary plane. The
> -		 * drm_atomic_plane_get_property() function isn't exported, 
but
> -		 * can be called through drm_object_property_get_value() as 
that
> -		 * will call drm_atomic_get_property() for atomic drivers.
> -		 */
> -		return drm_object_property_get_value(&crtc->primary->base,
> -				property, val);
> -	}
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
> +
> +	if (property == crtc->primary->rotation_property)
> +		return omap_state->rotation;
> +	else if (property == priv->zorder_prop)
> +		return omap_state->zpos;
> 
>  	return -EINVAL;
>  }
> 
> +static struct drm_crtc_state *
> +omap_crtc_duplicate_state(struct drm_crtc *crtc)
> +{
> +	struct omap_crtc_state *state, *current_state;
> +
> +	if (WARN_ON(!crtc->state))
> +		return NULL;
> +
> +	current_state = to_omap_crtc_state(crtc->state);
> +
> +	state = kmalloc(sizeof(*state), GFP_KERNEL);
> +	if (state)
> +		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
> +
> +	state->zpos = current_state->zpos;
> +	state->rotation = current_state->rotation;
> +
> +	return &state->base;
> +}
> +
>  static const struct drm_crtc_funcs omap_crtc_funcs = {
>  	.reset = drm_atomic_helper_crtc_reset,
>  	.set_config = drm_atomic_helper_set_config,
> @@ -559,7 +582,7 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
>  	.page_flip = drm_atomic_helper_page_flip,
>  	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>  	.set_property = drm_atomic_helper_crtc_set_property,
> -	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
> +	.atomic_duplicate_state = omap_crtc_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
>  	.atomic_set_property = omap_crtc_atomic_set_property,
>  	.atomic_get_property = omap_crtc_atomic_get_property,

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
                     ` (2 preceding siblings ...)
  2017-07-31 12:45   ` Daniel Vetter
@ 2017-07-31 15:42   ` Daniel Vetter
  2017-08-01  5:59     ` Maarten Lankhorst
  3 siblings, 1 reply; 84+ messages in thread
From: Daniel Vetter @ 2017-07-31 15:42 UTC (permalink / raw)
  To: DRI Development
  Cc: Daniel Vetter, Tomi Valkeinen, Laurent Pinchart, Daniel Vetter

I want/need to rework the core property handling, and this hack is
getting in the way. But since it's a non-standard propety only used by
legacy userspace we know that this will only every be called from
ioctl code. And never on some other free-standing state struct, where
this old hack wouldn't work either.

v2: don't forget zorder and get_property!

v3: Shadow the legacy state to avoid locking issues in get_property
(Maarten).

v4: Review from Laurent
- Move struct omap_crtc_state into omap_crtc.c
- Clean up comments.
- Don't forget to copy the shadowed state over on duplicate.

v5: Don't forget to update the reset handler (Maarten).

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/omapdrm/omap_crtc.c | 109 ++++++++++++++++++++++++------------
 1 file changed, 72 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 14e8a7738b06..9014085c33df 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -26,6 +26,16 @@
 
 #include "omap_drv.h"
 
+#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)
+
+struct omap_crtc_state {
+	/* Must be first. */
+	struct drm_crtc_state base;
+	/* Shadow values for legacy userspace support. */
+	unsigned int rotation;
+	unsigned int zpos;
+};
+
 #define to_omap_crtc(x) container_of(x, struct omap_crtc, base)
 
 struct omap_crtc {
@@ -498,39 +508,35 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
-static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
-	struct drm_property *property)
-{
-	struct drm_device *dev = crtc->dev;
-	struct omap_drm_private *priv = dev->dev_private;
-
-	return property == priv->zorder_prop ||
-		property == crtc->primary->rotation_property;
-}
-
 static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
 					 struct drm_crtc_state *state,
 					 struct drm_property *property,
 					 uint64_t val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		struct drm_plane_state *plane_state;
-		struct drm_plane *plane = crtc->primary;
-
-		/*
-		 * Delegate property set to the primary plane. Get the plane
-		 * state and set the property directly.
-		 */
-
-		plane_state = drm_atomic_get_plane_state(state->state, plane);
-		if (IS_ERR(plane_state))
-			return PTR_ERR(plane_state);
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+	struct drm_plane_state *plane_state;
 
-		return drm_atomic_plane_set_property(plane, plane_state,
-				property, val);
+	/*
+	 * Delegate property set to the primary plane. Get the plane state and
+	 * set the property directly, but keep a shadow copy for the
+	 * atomic_get_property callback.
+	 */
+	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
+	if (IS_ERR(plane_state))
+		return PTR_ERR(plane_state);
+
+	if (property == crtc->primary->rotation_property) {
+		plane_state->rotation = val;
+		omap_state->rotation = val;
+	} else if (property == priv->zorder_prop) {
+		plane_state->zpos = val;
+		omap_state->zpos = val;
+	} else {
+		return -EINVAL;
 	}
 
-	return -EINVAL;
+	return 0;
 }
 
 static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
@@ -538,28 +544,57 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
 					 struct drm_property *property,
 					 uint64_t *val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		/*
-		 * Delegate property get to the primary plane. The
-		 * drm_atomic_plane_get_property() function isn't exported, but
-		 * can be called through drm_object_property_get_value() as that
-		 * will call drm_atomic_get_property() for atomic drivers.
-		 */
-		return drm_object_property_get_value(&crtc->primary->base,
-				property, val);
-	}
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+
+	if (property == crtc->primary->rotation_property)
+		return omap_state->rotation;
+	else if (property == priv->zorder_prop)
+		return omap_state->zpos;
 
 	return -EINVAL;
 }
 
+static void omap_crtc_reset(struct drm_crtc *crtc)
+{
+	if (crtc->state)
+		__drm_atomic_helper_crtc_destroy_state(crtc->state);
+
+	kfree(crtc->state);
+	crtc->state = kzalloc(sizeof(struct omap_crtc_state), GFP_KERNEL);
+
+	if (crtc->state)
+		crtc->state->crtc = crtc;
+}
+
+static struct drm_crtc_state *
+omap_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct omap_crtc_state *state, *current_state;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	current_state = to_omap_crtc_state(crtc->state);
+
+	state = kmalloc(sizeof(*state), GFP_KERNEL);
+	if (state)
+		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	state->zpos = current_state->zpos;
+	state->rotation = current_state->rotation;
+
+	return &state->base;
+}
+
 static const struct drm_crtc_funcs omap_crtc_funcs = {
-	.reset = drm_atomic_helper_crtc_reset,
+	.reset = omap_crtc_reset,
 	.set_config = drm_atomic_helper_set_config,
 	.destroy = omap_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
 	.set_property = drm_atomic_helper_crtc_set_property,
-	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
+	.atomic_duplicate_state = omap_crtc_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 	.atomic_set_property = omap_crtc_atomic_set_property,
 	.atomic_get_property = omap_crtc_atomic_get_property,
-- 
2.9.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-07-31 15:42   ` Daniel Vetter
@ 2017-08-01  5:59     ` Maarten Lankhorst
  2017-08-01 10:20       ` Laurent Pinchart
  0 siblings, 1 reply; 84+ messages in thread
From: Maarten Lankhorst @ 2017-08-01  5:59 UTC (permalink / raw)
  To: Daniel Vetter, DRI Development
  Cc: Daniel Vetter, Tomi Valkeinen, Laurent Pinchart

Op 31-07-17 om 17:42 schreef Daniel Vetter:
> I want/need to rework the core property handling, and this hack is
> getting in the way. But since it's a non-standard propety only used by
> legacy userspace we know that this will only every be called from
> ioctl code. And never on some other free-standing state struct, where
> this old hack wouldn't work either.
>
> v2: don't forget zorder and get_property!
>
> v3: Shadow the legacy state to avoid locking issues in get_property
> (Maarten).
>
> v4: Review from Laurent
> - Move struct omap_crtc_state into omap_crtc.c
> - Clean up comments.
> - Don't forget to copy the shadowed state over on duplicate.
>
> v5: Don't forget to update the reset handler (Maarten).
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/omapdrm/omap_crtc.c | 109 ++++++++++++++++++++++++------------
>  1 file changed, 72 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
> index 14e8a7738b06..9014085c33df 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -26,6 +26,16 @@
>  
>  #include "omap_drv.h"
>  
> +#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)
> +
> +struct omap_crtc_state {
> +	/* Must be first. */
> +	struct drm_crtc_state base;
> +	/* Shadow values for legacy userspace support. */
> +	unsigned int rotation;
> +	unsigned int zpos;
> +};
> +
>  #define to_omap_crtc(x) container_of(x, struct omap_crtc, base)
>  
>  struct omap_crtc {
> @@ -498,39 +508,35 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
>  	spin_unlock_irq(&crtc->dev->event_lock);
>  }
>  
> -static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
> -	struct drm_property *property)
> -{
> -	struct drm_device *dev = crtc->dev;
> -	struct omap_drm_private *priv = dev->dev_private;
> -
> -	return property == priv->zorder_prop ||
> -		property == crtc->primary->rotation_property;
> -}
> -
>  static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
>  					 struct drm_crtc_state *state,
>  					 struct drm_property *property,
>  					 uint64_t val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		struct drm_plane_state *plane_state;
> -		struct drm_plane *plane = crtc->primary;
> -
> -		/*
> -		 * Delegate property set to the primary plane. Get the plane
> -		 * state and set the property directly.
> -		 */
> -
> -		plane_state = drm_atomic_get_plane_state(state->state, plane);
> -		if (IS_ERR(plane_state))
> -			return PTR_ERR(plane_state);
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
> +	struct drm_plane_state *plane_state;
>  
> -		return drm_atomic_plane_set_property(plane, plane_state,
> -				property, val);
> +	/*
> +	 * Delegate property set to the primary plane. Get the plane state and
> +	 * set the property directly, but keep a shadow copy for the
> +	 * atomic_get_property callback.
> +	 */
> +	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
> +	if (IS_ERR(plane_state))
> +		return PTR_ERR(plane_state);
> +
> +	if (property == crtc->primary->rotation_property) {
> +		plane_state->rotation = val;
> +		omap_state->rotation = val;
> +	} else if (property == priv->zorder_prop) {
> +		plane_state->zpos = val;
> +		omap_state->zpos = val;
With atomic we should try to always make the getprop values accurate, or compositors might have
troubles restoring.

I would update the shadow values in omap_crtc_atomic_check through omap_crtc_atomic_check instead,
with something like this:

+       pri_state = drm_atomic_get_new_plane_state(crtc->primary, state->state);
+       if (pri_state) {
+               struct omap_crtc_state *omap_crtc_state =
+                       to_omap_crtc_state(state);
+
+               omap_crtc_state->zpos = pri_state->zpos;
+               omap_crtc_state->rotation = pri_state->rotation;
+       }

That way even when updating the property through the primary plane, it gets reflected correctly. For example when vt switching
with fbdev.

> +	} else {
> +		return -EINVAL;
>  	}
>  
> -	return -EINVAL;
> +	return 0;
>  }
>  
>  static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
> @@ -538,28 +544,57 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
>  					 struct drm_property *property,
>  					 uint64_t *val)
>  {
> -	if (omap_crtc_is_plane_prop(crtc, property)) {
> -		/*
> -		 * Delegate property get to the primary plane. The
> -		 * drm_atomic_plane_get_property() function isn't exported, but
> -		 * can be called through drm_object_property_get_value() as that
> -		 * will call drm_atomic_get_property() for atomic drivers.
> -		 */
> -		return drm_object_property_get_value(&crtc->primary->base,
> -				property, val);
> -	}
> +	struct omap_drm_private *priv = crtc->dev->dev_private;
> +	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
> +
> +	if (property == crtc->primary->rotation_property)
> +		return omap_state->rotation;
> +	else if (property == priv->zorder_prop)
> +		return omap_state->zpos;
>  
>  	return -EINVAL;
>  }
>  
> +static void omap_crtc_reset(struct drm_crtc *crtc)
> +{
> +	if (crtc->state)
> +		__drm_atomic_helper_crtc_destroy_state(crtc->state);
> +
> +	kfree(crtc->state);
> +	crtc->state = kzalloc(sizeof(struct omap_crtc_state), GFP_KERNEL);
> +
> +	if (crtc->state)
> +		crtc->state->crtc = crtc;
Hm, perhaps add a __drm_atomic_helper_crtc_reset, and (perhaps) for planes too?

Similar to __drm_atomic_helper_connector_reset, in case we want to add something in the future that might need to be initialised. :)
> +}
> +
> +static struct drm_crtc_state *
> +omap_crtc_duplicate_state(struct drm_crtc *crtc)
> +{
> +	struct omap_crtc_state *state, *current_state;
> +
> +	if (WARN_ON(!crtc->state))
> +		return NULL;
> +
> +	current_state = to_omap_crtc_state(crtc->state);
> +
> +	state = kmalloc(sizeof(*state), GFP_KERNEL);
> +	if (state)
> +		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
> +
> +	state->zpos = current_state->zpos;
> +	state->rotation = current_state->rotation;
> +
> +	return &state->base;
> +}
> +
>  static const struct drm_crtc_funcs omap_crtc_funcs = {
> -	.reset = drm_atomic_helper_crtc_reset,
> +	.reset = omap_crtc_reset,
>  	.set_config = drm_atomic_helper_set_config,
>  	.destroy = omap_crtc_destroy,
>  	.page_flip = drm_atomic_helper_page_flip,
>  	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>  	.set_property = drm_atomic_helper_crtc_set_property,
> -	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
> +	.atomic_duplicate_state = omap_crtc_duplicate_state,
>  	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
>  	.atomic_set_property = omap_crtc_atomic_set_property,
>  	.atomic_get_property = omap_crtc_atomic_get_property,


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-08-01  5:59     ` Maarten Lankhorst
@ 2017-08-01 10:20       ` Laurent Pinchart
  2017-08-02  8:02         ` Daniel Vetter
  0 siblings, 1 reply; 84+ messages in thread
From: Laurent Pinchart @ 2017-08-01 10:20 UTC (permalink / raw)
  To: Maarten Lankhorst
  Cc: Daniel Vetter, Tomi Valkeinen, DRI Development, Daniel Vetter

Hi Maarten,

On Tuesday 01 Aug 2017 07:59:13 Maarten Lankhorst wrote:
> Op 31-07-17 om 17:42 schreef Daniel Vetter:
> > I want/need to rework the core property handling, and this hack is
> > getting in the way. But since it's a non-standard propety only used by
> > legacy userspace we know that this will only every be called from
> > ioctl code. And never on some other free-standing state struct, where
> > this old hack wouldn't work either.
> > 
> > v2: don't forget zorder and get_property!
> > 
> > v3: Shadow the legacy state to avoid locking issues in get_property
> > (Maarten).
> > 
> > v4: Review from Laurent
> > - Move struct omap_crtc_state into omap_crtc.c
> > - Clean up comments.
> > - Don't forget to copy the shadowed state over on duplicate.
> > 
> > v5: Don't forget to update the reset handler (Maarten).
> > 
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> > 
> >  drivers/gpu/drm/omapdrm/omap_crtc.c | 109 ++++++++++++++++++++-----------
> >  1 file changed, 72 insertions(+), 37 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c
> > b/drivers/gpu/drm/omapdrm/omap_crtc.c index 14e8a7738b06..9014085c33df
> > 100644
> > --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> > +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c

[snip]

> >  static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
> >  					 struct drm_crtc_state *state,
> >  					 struct drm_property *property,
> >  					 uint64_t val)
> >  {
> > -	if (omap_crtc_is_plane_prop(crtc, property)) {
> > -		struct drm_plane_state *plane_state;
> > -		struct drm_plane *plane = crtc->primary;
> > -
> > -		/*
> > -		 * Delegate property set to the primary plane. Get the plane
> > -		 * state and set the property directly.
> > -		 */
> > -
> > -		plane_state = drm_atomic_get_plane_state(state->state, plane);
> > -		if (IS_ERR(plane_state))
> > -			return PTR_ERR(plane_state);
> > +	struct omap_drm_private *priv = crtc->dev->dev_private;
> > +	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
> > +	struct drm_plane_state *plane_state;
> > 
> > -		return drm_atomic_plane_set_property(plane, plane_state,
> > -				property, val);
> > +	/*
> > +	 * Delegate property set to the primary plane. Get the plane state and
> > +	 * set the property directly, but keep a shadow copy for the
> > +	 * atomic_get_property callback.
> > +	 */
> > +	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
> > +	if (IS_ERR(plane_state))
> > +		return PTR_ERR(plane_state);
> > +
> > +	if (property == crtc->primary->rotation_property) {
> > +		plane_state->rotation = val;
> > +		omap_state->rotation = val;
> > +	} else if (property == priv->zorder_prop) {
> > +		plane_state->zpos = val;
> > +		omap_state->zpos = val;
> 
> With atomic we should try to always make the getprop values accurate, or
> compositors might have troubles restoring.
> 
> I would update the shadow values in omap_crtc_atomic_check through
> omap_crtc_atomic_check instead, with something like this:
> 
> +       pri_state = drm_atomic_get_new_plane_state(crtc->primary,
> state->state);
> +       if (pri_state) {
> +               struct omap_crtc_state *omap_crtc_state =
> +                       to_omap_crtc_state(state);
> +
> +               omap_crtc_state->zpos = pri_state->zpos;
> +               omap_crtc_state->rotation = pri_state->rotation;
> +       }
> 
> That way even when updating the property through the primary plane, it gets
> reflected correctly. For example when vt switching with fbdev.

Let's not make it over-complicated. This hack is only needed fo the legacy X 
OMAP modesetting driver. The CRTC zpos and rotation properties should not be 
used through the atomic API.

> > +	} else {
> > +		return -EINVAL;
> >  	}
> > 
> > -	return -EINVAL;
> > +	return 0;
> >  }

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-08-01 10:20       ` Laurent Pinchart
@ 2017-08-02  8:02         ` Daniel Vetter
  2017-08-02 13:20           ` Maarten Lankhorst
  0 siblings, 1 reply; 84+ messages in thread
From: Daniel Vetter @ 2017-08-02  8:02 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: Daniel Vetter, Tomi Valkeinen, DRI Development

On Tue, Aug 1, 2017 at 12:20 PM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Tuesday 01 Aug 2017 07:59:13 Maarten Lankhorst wrote:
>> +       pri_state = drm_atomic_get_new_plane_state(crtc->primary,
>> state->state);
>> +       if (pri_state) {
>> +               struct omap_crtc_state *omap_crtc_state =
>> +                       to_omap_crtc_state(state);
>> +
>> +               omap_crtc_state->zpos = pri_state->zpos;
>> +               omap_crtc_state->rotation = pri_state->rotation;
>> +       }
>>
>> That way even when updating the property through the primary plane, it gets
>> reflected correctly. For example when vt switching with fbdev.
>
> Let's not make it over-complicated. This hack is only needed fo the legacy X
> OMAP modesetting driver. The CRTC zpos and rotation properties should not be
> used through the atomic API.

Marten is right, the atomic properties are all such that you can
unconditionally restore them (e.g. fences report a no-op value), to
make compositor switching easier. Not sure anyone implements that, but
I think it's a useful idea to keep. I'll respin (or maybe Maarten
simply submits his patch with a proper sob ...).
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-08-02  8:02         ` Daniel Vetter
@ 2017-08-02 13:20           ` Maarten Lankhorst
  2017-08-04  9:57             ` Tomi Valkeinen
  0 siblings, 1 reply; 84+ messages in thread
From: Maarten Lankhorst @ 2017-08-02 13:20 UTC (permalink / raw)
  To: Daniel Vetter, Laurent Pinchart
  Cc: Daniel Vetter, Tomi Valkeinen, DRI Development

Op 02-08-17 om 10:02 schreef Daniel Vetter:
> On Tue, Aug 1, 2017 at 12:20 PM, Laurent Pinchart
> <laurent.pinchart@ideasonboard.com> wrote:
>> On Tuesday 01 Aug 2017 07:59:13 Maarten Lankhorst wrote:
>>> +       pri_state = drm_atomic_get_new_plane_state(crtc->primary,
>>> state->state);
>>> +       if (pri_state) {
>>> +               struct omap_crtc_state *omap_crtc_state =
>>> +                       to_omap_crtc_state(state);
>>> +
>>> +               omap_crtc_state->zpos = pri_state->zpos;
>>> +               omap_crtc_state->rotation = pri_state->rotation;
>>> +       }
>>>
>>> That way even when updating the property through the primary plane, it gets
>>> reflected correctly. For example when vt switching with fbdev.
>> Let's not make it over-complicated. This hack is only needed fo the legacy X
>> OMAP modesetting driver. The CRTC zpos and rotation properties should not be
>> used through the atomic API.
> Marten is right, the atomic properties are all such that you can
> unconditionally restore them (e.g. fences report a no-op value), to
> make compositor switching easier. Not sure anyone implements that, but
> I think it's a useful idea to keep. I'll respin (or maybe Maarten
> simply submits his patch with a proper sob ...).
> -Daniel

Here you go, compile tested version. :)
----8<----
I want/need to rework the core property handling, and this hack is
getting in the way. But since it's a non-standard propety only used by
legacy userspace we know that this will only every be called from
ioctl code. And never on some other free-standing state struct, where
this old hack wouldn't work either.

v2: don't forget zorder and get_property!

v3: Shadow the legacy state to avoid locking issues in get_property
(Maarten).

v4: Review from Laurent
- Move struct omap_crtc_state into omap_crtc.c
- Clean up comments.
- Don't forget to copy the shadowed state over on duplicate.

v5: Don't forget to update the reset handler (Maarten).
v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/omapdrm/omap_crtc.c | 118 +++++++++++++++++++++++++-----------
 1 file changed, 81 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 14e8a7738b06..b842fcd9914a 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -26,6 +26,16 @@
 
 #include "omap_drv.h"
 
+#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)
+
+struct omap_crtc_state {
+	/* Must be first. */
+	struct drm_crtc_state base;
+	/* Shadow values for legacy userspace support. */
+	unsigned int rotation;
+	unsigned int zpos;
+};
+
 #define to_omap_crtc(x) container_of(x, struct omap_crtc, base)
 
 struct omap_crtc {
@@ -445,6 +455,8 @@ static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc)
 static int omap_crtc_atomic_check(struct drm_crtc *crtc,
 				struct drm_crtc_state *state)
 {
+	struct drm_plane_state *pri_state;
+
 	if (state->color_mgmt_changed && state->gamma_lut) {
 		uint length = state->gamma_lut->length /
 			sizeof(struct drm_color_lut);
@@ -453,6 +465,16 @@ static int omap_crtc_atomic_check(struct drm_crtc *crtc,
 			return -EINVAL;
 	}
 
+	pri_state = drm_atomic_get_new_plane_state(state->state, crtc->primary);
+	if (pri_state) {
+		struct omap_crtc_state *omap_crtc_state =
+			to_omap_crtc_state(state);
+
+		/* Mirror new values for zpos and rotation in omap_crtc_state */
+		omap_crtc_state->zpos = pri_state->zpos;
+		omap_crtc_state->rotation = pri_state->rotation;
+	}
+
 	return 0;
 }
 
@@ -498,39 +520,32 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
-static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
-	struct drm_property *property)
-{
-	struct drm_device *dev = crtc->dev;
-	struct omap_drm_private *priv = dev->dev_private;
-
-	return property == priv->zorder_prop ||
-		property == crtc->primary->rotation_property;
-}
-
 static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
 					 struct drm_crtc_state *state,
 					 struct drm_property *property,
 					 uint64_t val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		struct drm_plane_state *plane_state;
-		struct drm_plane *plane = crtc->primary;
-
-		/*
-		 * Delegate property set to the primary plane. Get the plane
-		 * state and set the property directly.
-		 */
-
-		plane_state = drm_atomic_get_plane_state(state->state, plane);
-		if (IS_ERR(plane_state))
-			return PTR_ERR(plane_state);
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct drm_plane_state *plane_state;
 
-		return drm_atomic_plane_set_property(plane, plane_state,
-				property, val);
+	/*
+	 * Delegate property set to the primary plane. Get the plane state and
+	 * set the property directly, but keep a shadow copy for the
+	 * atomic_get_property callback.
+	 */
+	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
+	if (IS_ERR(plane_state))
+		return PTR_ERR(plane_state);
+
+	if (property == crtc->primary->rotation_property) {
+		plane_state->rotation = val;
+	} else if (property == priv->zorder_prop) {
+		plane_state->zpos = val;
+	} else {
+		return -EINVAL;
 	}
 
-	return -EINVAL;
+	return 0;
 }
 
 static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
@@ -538,28 +553,57 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
 					 struct drm_property *property,
 					 uint64_t *val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		/*
-		 * Delegate property get to the primary plane. The
-		 * drm_atomic_plane_get_property() function isn't exported, but
-		 * can be called through drm_object_property_get_value() as that
-		 * will call drm_atomic_get_property() for atomic drivers.
-		 */
-		return drm_object_property_get_value(&crtc->primary->base,
-				property, val);
-	}
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+
+	if (property == crtc->primary->rotation_property)
+		return omap_state->rotation;
+	else if (property == priv->zorder_prop)
+		return omap_state->zpos;
 
 	return -EINVAL;
 }
 
+static void omap_crtc_reset(struct drm_crtc *crtc)
+{
+	if (crtc->state)
+		__drm_atomic_helper_crtc_destroy_state(crtc->state);
+
+	kfree(crtc->state);
+	crtc->state = kzalloc(sizeof(struct omap_crtc_state), GFP_KERNEL);
+
+	if (crtc->state)
+		crtc->state->crtc = crtc;
+}
+
+static struct drm_crtc_state *
+omap_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct omap_crtc_state *state, *current_state;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	current_state = to_omap_crtc_state(crtc->state);
+
+	state = kmalloc(sizeof(*state), GFP_KERNEL);
+	if (state)
+		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	state->zpos = current_state->zpos;
+	state->rotation = current_state->rotation;
+
+	return &state->base;
+}
+
 static const struct drm_crtc_funcs omap_crtc_funcs = {
-	.reset = drm_atomic_helper_crtc_reset,
+	.reset = omap_crtc_reset,
 	.set_config = drm_atomic_helper_set_config,
 	.destroy = omap_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
 	.set_property = drm_atomic_helper_crtc_set_property,
-	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
+	.atomic_duplicate_state = omap_crtc_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 	.atomic_set_property = omap_crtc_atomic_set_property,
 	.atomic_get_property = omap_crtc_atomic_get_property,
-- 
2.11.0


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* Re: [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property
  2017-07-25  8:01 ` [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property Daniel Vetter
  2017-07-25  9:38   ` Archit Taneja
  2017-07-25 10:05   ` Philippe CORNU
@ 2017-08-03 13:34   ` Thomas Hellstrom
  2 siblings, 0 replies; 84+ messages in thread
From: Thomas Hellstrom @ 2017-08-03 13:34 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: nouveau, DRI Development, Sushmita Susheelendra, Masahiro Yamada,
	Daniel Vetter, Boris Brezillon, Laurent Pinchart, Alexey Brodkin,
	Tomi Valkeinen, linux-graphics-maintainer, Ben Skeggs,
	Eric Engestrom, Philippe Cornu, Maxime Ripard

Acked-by: Thomas Hellstrom <thellstrom@vmware.com>


On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code because this is now handled in the core.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Cc: Sushmita Susheelendra <ssusheel@codeaurora.org>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> ---
>   drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c  |  1 -
>   drivers/gpu/drm/drm_atomic_helper.c             | 55 -------------------------
>   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>   drivers/gpu/drm/i915/intel_display.c            |  1 -
>   drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c        |  1 -
>   drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c        |  2 -
>   drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>   drivers/gpu/drm/omapdrm/omap_crtc.c             |  1 -
>   include/drm/drm_atomic_helper.h                 |  3 --
>   9 files changed, 66 deletions(-)
>
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> index 4fbbeab5c5d4..d73281095fac 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> @@ -431,7 +431,6 @@ static const struct drm_crtc_funcs atmel_hlcdc_crtc_funcs = {
>   	.atomic_destroy_state = atmel_hlcdc_crtc_destroy_state,
>   	.enable_vblank = atmel_hlcdc_crtc_enable_vblank,
>   	.disable_vblank = atmel_hlcdc_crtc_disable_vblank,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>   };
>   
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 4a960c741e35..22245aa8b1aa 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2968,61 +2968,6 @@ int drm_atomic_helper_resume(struct drm_device *dev,
>   EXPORT_SYMBOL(drm_atomic_helper_resume);
>   
>   /**
> - * drm_atomic_helper_crtc_set_property - helper for crtc properties
> - * @crtc: DRM crtc
> - * @property: DRM property
> - * @val: value of property
> - *
> - * Provides a default crtc set_property handler using the atomic driver
> - * interface.
> - *
> - * RETURNS:
> - * Zero on success, error code on failure
> - */
> -int
> -drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
> -				    struct drm_property *property,
> -				    uint64_t val)
> -{
> -	struct drm_atomic_state *state;
> -	struct drm_crtc_state *crtc_state;
> -	int ret = 0;
> -
> -	state = drm_atomic_state_alloc(crtc->dev);
> -	if (!state)
> -		return -ENOMEM;
> -
> -	/* ->set_property is always called with all locks held. */
> -	state->acquire_ctx = crtc->dev->mode_config.acquire_ctx;
> -retry:
> -	crtc_state = drm_atomic_get_crtc_state(state, crtc);
> -	if (IS_ERR(crtc_state)) {
> -		ret = PTR_ERR(crtc_state);
> -		goto fail;
> -	}
> -
> -	ret = drm_atomic_crtc_set_property(crtc, crtc_state,
> -			property, val);
> -	if (ret)
> -		goto fail;
> -
> -	ret = drm_atomic_commit(state);
> -fail:
> -	if (ret == -EDEADLK)
> -		goto backoff;
> -
> -	drm_atomic_state_put(state);
> -	return ret;
> -
> -backoff:
> -	drm_atomic_state_clear(state);
> -	drm_atomic_legacy_backoff(state);
> -
> -	goto retry;
> -}
> -EXPORT_SYMBOL(drm_atomic_helper_crtc_set_property);
> -
> -/**
>    * drm_atomic_helper_plane_set_property - helper for plane properties
>    * @plane: DRM plane
>    * @property: DRM property
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 706efd0c4190..961551135a39 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -567,7 +567,6 @@ static const struct drm_crtc_funcs ade_crtc_funcs = {
>   	.set_config	= drm_atomic_helper_set_config,
>   	.page_flip	= drm_atomic_helper_page_flip,
>   	.reset		= drm_atomic_helper_crtc_reset,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state	= drm_atomic_helper_crtc_duplicate_state,
>   	.atomic_destroy_state	= drm_atomic_helper_crtc_destroy_state,
>   	.enable_vblank	= ade_crtc_enable_vblank,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index f7b128c33aa1..b4d0c5298a53 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12373,7 +12373,6 @@ static int intel_atomic_commit(struct drm_device *dev,
>   static const struct drm_crtc_funcs intel_crtc_funcs = {
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
>   	.set_config = drm_atomic_helper_set_config,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.destroy = intel_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
>   	.atomic_duplicate_state = intel_crtc_duplicate_state,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> index 3c7a9d343e05..47fa2aba1983 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
> @@ -484,7 +484,6 @@ static const struct drm_crtc_funcs mdp4_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp4_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.cursor_set = mdp4_crtc_cursor_set,
>   	.cursor_move = mdp4_crtc_cursor_move,
>   	.reset = drm_atomic_helper_crtc_reset,
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> index 4322a502555a..5e3bc7224eee 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
> @@ -919,7 +919,6 @@ static const struct drm_crtc_funcs mdp5_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp5_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.reset = mdp5_crtc_reset,
>   	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
>   	.atomic_destroy_state = mdp5_crtc_destroy_state,
> @@ -932,7 +931,6 @@ static const struct drm_crtc_funcs mdp5_crtc_no_lm_cursor_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.destroy = mdp5_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.reset = mdp5_crtc_reset,
>   	.atomic_duplicate_state = mdp5_crtc_duplicate_state,
>   	.atomic_destroy_state = mdp5_crtc_destroy_state,
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index 9d40b2a8be4d..aa6fc525c539 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -2325,7 +2325,6 @@ nv50_head_func = {
>   	.destroy = nv50_head_destroy,
>   	.set_config = drm_atomic_helper_set_config,
>   	.page_flip = drm_atomic_helper_page_flip,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state = nv50_head_atomic_duplicate_state,
>   	.atomic_destroy_state = nv50_head_atomic_destroy_state,
>   };
> diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
> index efa525442e7d..33ed24e9c599 100644
> --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
> +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
> @@ -550,7 +550,6 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
>   	.destroy = omap_crtc_destroy,
>   	.page_flip = drm_atomic_helper_page_flip,
>   	.gamma_set = drm_atomic_helper_legacy_gamma_set,
> -	.set_property = drm_atomic_helper_crtc_set_property,
>   	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
>   	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
>   	.atomic_set_property = omap_crtc_atomic_set_property,
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index d6ddf5bc5fdd..e5c835d94540 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -124,9 +124,6 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
>   int drm_atomic_helper_resume(struct drm_device *dev,
>   			     struct drm_atomic_state *state);
>   
> -int drm_atomic_helper_crtc_set_property(struct drm_crtc *crtc,
> -					struct drm_property *property,
> -					uint64_t val);
>   int drm_atomic_helper_plane_set_property(struct drm_plane *plane,
>   					struct drm_property *property,
>   					uint64_t val);


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-08-02 13:20           ` Maarten Lankhorst
@ 2017-08-04  9:57             ` Tomi Valkeinen
  2017-08-04 10:02               ` Daniel Vetter
  0 siblings, 1 reply; 84+ messages in thread
From: Tomi Valkeinen @ 2017-08-04  9:57 UTC (permalink / raw)
  To: Maarten Lankhorst, Daniel Vetter, Laurent Pinchart
  Cc: Daniel Vetter, DRI Development


[-- Attachment #1.1.1: Type: text/plain, Size: 1559 bytes --]

Hi,

> Here you go, compile tested version. :)
> ----8<----
> I want/need to rework the core property handling, and this hack is
> getting in the way. But since it's a non-standard propety only used by
> legacy userspace we know that this will only every be called from
> ioctl code. And never on some other free-standing state struct, where
> this old hack wouldn't work either.
> 
> v2: don't forget zorder and get_property!
> 
> v3: Shadow the legacy state to avoid locking issues in get_property
> (Maarten).
> 
> v4: Review from Laurent
> - Move struct omap_crtc_state into omap_crtc.c
> - Clean up comments.
> - Don't forget to copy the shadowed state over on duplicate.
> 
> v5: Don't forget to update the reset handler (Maarten).
> v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  drivers/gpu/drm/omapdrm/omap_crtc.c | 118 +++++++++++++++++++++++++-----------
>  1 file changed, 81 insertions(+), 37 deletions(-)

This makes all the CRTC properties disappear...

This doesn't depend on anything in drm-next, does it? I'm currently on
v4.13-rc3. I'll look a bit more on what's going on later today.

 Tomi


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-08-04  9:57             ` Tomi Valkeinen
@ 2017-08-04 10:02               ` Daniel Vetter
  2017-08-07  9:24                 ` Maarten Lankhorst
                                   ` (2 more replies)
  0 siblings, 3 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-08-04 10:02 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: Daniel Vetter, Laurent Pinchart, DRI Development

On Fri, Aug 4, 2017 at 11:57 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>> Here you go, compile tested version. :)
>> ----8<----
>> I want/need to rework the core property handling, and this hack is
>> getting in the way. But since it's a non-standard propety only used by
>> legacy userspace we know that this will only every be called from
>> ioctl code. And never on some other free-standing state struct, where
>> this old hack wouldn't work either.
>>
>> v2: don't forget zorder and get_property!
>>
>> v3: Shadow the legacy state to avoid locking issues in get_property
>> (Maarten).
>>
>> v4: Review from Laurent
>> - Move struct omap_crtc_state into omap_crtc.c
>> - Clean up comments.
>> - Don't forget to copy the shadowed state over on duplicate.
>>
>> v5: Don't forget to update the reset handler (Maarten).
>> v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).
>>
>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> ---
>>  drivers/gpu/drm/omapdrm/omap_crtc.c | 118 +++++++++++++++++++++++++-----------
>>  1 file changed, 81 insertions(+), 37 deletions(-)
>
> This makes all the CRTC properties disappear...

Strange, we should still register them, that's really surprising.

> This doesn't depend on anything in drm-next, does it? I'm currently on
> v4.13-rc3. I'll look a bit more on what's going on later today.

Not that I know of. Later patches will, but this one should be stand-alone.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-08-04 10:02               ` Daniel Vetter
@ 2017-08-07  9:24                 ` Maarten Lankhorst
  2017-08-07  9:56                 ` Maarten Lankhorst
  2017-08-07 10:20                 ` [PATCH v7] " Maarten Lankhorst
  2 siblings, 0 replies; 84+ messages in thread
From: Maarten Lankhorst @ 2017-08-07  9:24 UTC (permalink / raw)
  To: Daniel Vetter, Tomi Valkeinen
  Cc: Daniel Vetter, Laurent Pinchart, DRI Development

Op 04-08-17 om 12:02 schreef Daniel Vetter:
> On Fri, Aug 4, 2017 at 11:57 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>> Here you go, compile tested version. :)
>>> ----8<----
>>> I want/need to rework the core property handling, and this hack is
>>> getting in the way. But since it's a non-standard propety only used by
>>> legacy userspace we know that this will only every be called from
>>> ioctl code. And never on some other free-standing state struct, where
>>> this old hack wouldn't work either.
>>>
>>> v2: don't forget zorder and get_property!
>>>
>>> v3: Shadow the legacy state to avoid locking issues in get_property
>>> (Maarten).
>>>
>>> v4: Review from Laurent
>>> - Move struct omap_crtc_state into omap_crtc.c
>>> - Clean up comments.
>>> - Don't forget to copy the shadowed state over on duplicate.
>>>
>>> v5: Don't forget to update the reset handler (Maarten).
>>> v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).
>>>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
>>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> ---
>>>  drivers/gpu/drm/omapdrm/omap_crtc.c | 118 +++++++++++++++++++++++++-----------
>>>  1 file changed, 81 insertions(+), 37 deletions(-)
>> This makes all the CRTC properties disappear...
> Strange, we should still register them, that's really surprising.
>
>> This doesn't depend on anything in drm-next, does it? I'm currently on
>> v4.13-rc3. I'll look a bit more on what's going on later today.
> Not that I know of. Later patches will, but this one should be stand-alone.
> -Daniel

The properties should not disappear, does kms_properties pass?

~Maarten

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH] drm/omap: Rework the rotation-on-crtc hack
  2017-08-04 10:02               ` Daniel Vetter
  2017-08-07  9:24                 ` Maarten Lankhorst
@ 2017-08-07  9:56                 ` Maarten Lankhorst
  2017-08-07 10:20                 ` [PATCH v7] " Maarten Lankhorst
  2 siblings, 0 replies; 84+ messages in thread
From: Maarten Lankhorst @ 2017-08-07  9:56 UTC (permalink / raw)
  To: Daniel Vetter, Tomi Valkeinen
  Cc: Daniel Vetter, Laurent Pinchart, DRI Development

Op 04-08-17 om 12:02 schreef Daniel Vetter:
> On Fri, Aug 4, 2017 at 11:57 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>> Here you go, compile tested version. :)
>>> ----8<----
>>> I want/need to rework the core property handling, and this hack is
>>> getting in the way. But since it's a non-standard propety only used by
>>> legacy userspace we know that this will only every be called from
>>> ioctl code. And never on some other free-standing state struct, where
>>> this old hack wouldn't work either.
>>>
>>> v2: don't forget zorder and get_property!
>>>
>>> v3: Shadow the legacy state to avoid locking issues in get_property
>>> (Maarten).
>>>
>>> v4: Review from Laurent
>>> - Move struct omap_crtc_state into omap_crtc.c
>>> - Clean up comments.
>>> - Don't forget to copy the shadowed state over on duplicate.
>>>
>>> v5: Don't forget to update the reset handler (Maarten).
>>> v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).
>>>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
>>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> ---
>>>  drivers/gpu/drm/omapdrm/omap_crtc.c | 118 +++++++++++++++++++++++++-----------
>>>  1 file changed, 81 insertions(+), 37 deletions(-)
>> This makes all the CRTC properties disappear...
> Strange, we should still register them, that's really surprising.
>
>> This doesn't depend on anything in drm-next, does it? I'm currently on
>> v4.13-rc3. I'll look a bit more on what's going on later today.
> Not that I know of. Later patches will, but this one should be stand-alone.
> -Daniel

Oh derp, I also see what's going wrong..

omap_crtc_atomic_get_property returns the value, instead of setting *val and returning 0.

Next version coming up!

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH v7] drm/omap: Rework the rotation-on-crtc hack
  2017-08-04 10:02               ` Daniel Vetter
  2017-08-07  9:24                 ` Maarten Lankhorst
  2017-08-07  9:56                 ` Maarten Lankhorst
@ 2017-08-07 10:20                 ` Maarten Lankhorst
  2017-08-08 12:08                   ` Tomi Valkeinen
  2 siblings, 1 reply; 84+ messages in thread
From: Maarten Lankhorst @ 2017-08-07 10:20 UTC (permalink / raw)
  To: Daniel Vetter, Tomi Valkeinen
  Cc: Daniel Vetter, Laurent Pinchart, DRI Development

Op 04-08-17 om 12:02 schreef Daniel Vetter:
> On Fri, Aug 4, 2017 at 11:57 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>>> Here you go, compile tested version. :)
>>> ----8<----
>>> I want/need to rework the core property handling, and this hack is
>>> getting in the way. But since it's a non-standard propety only used by
>>> legacy userspace we know that this will only every be called from
>>> ioctl code. And never on some other free-standing state struct, where
>>> this old hack wouldn't work either.
>>>
>>> v2: don't forget zorder and get_property!
>>>
>>> v3: Shadow the legacy state to avoid locking issues in get_property
>>> (Maarten).
>>>
>>> v4: Review from Laurent
>>> - Move struct omap_crtc_state into omap_crtc.c
>>> - Clean up comments.
>>> - Don't forget to copy the shadowed state over on duplicate.
>>>
>>> v5: Don't forget to update the reset handler (Maarten).
>>> v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).
>>>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
>>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> ---
>>>  drivers/gpu/drm/omapdrm/omap_crtc.c | 118 +++++++++++++++++++++++++-----------
>>>  1 file changed, 81 insertions(+), 37 deletions(-)
>> This makes all the CRTC properties disappear...
> Strange, we should still register them, that's really surprising.
>
>> This doesn't depend on anything in drm-next, does it? I'm currently on
>> v4.13-rc3. I'll look a bit more on what's going on later today.
> Not that I know of. Later patches will, but this one should be stand-alone.
> -Daniel

----->8--------
I want/need to rework the core property handling, and this hack is
getting in the way. But since it's a non-standard propety only used by
legacy userspace we know that this will only every be called from
ioctl code. And never on some other free-standing state struct, where
this old hack wouldn't work either.

v2: don't forget zorder and get_property!

v3: Shadow the legacy state to avoid locking issues in get_property
(Maarten).

v4: Review from Laurent
- Move struct omap_crtc_state into omap_crtc.c
- Clean up comments.
- Don't forget to copy the shadowed state over on duplicate.

v5: Don't forget to update the reset handler (Maarten).
v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).
v7:
- Fix get_property to return 0 and set value in *val (Maarten).
- Update comment in set_property for changes in v6 (Maarten).

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/omapdrm/omap_crtc.c | 124 ++++++++++++++++++++++++------------
 1 file changed, 85 insertions(+), 39 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 14e8a7738b06..09e05e002703 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -26,6 +26,16 @@
 
 #include "omap_drv.h"
 
+#define to_omap_crtc_state(x) container_of(x, struct omap_crtc_state, base)
+
+struct omap_crtc_state {
+	/* Must be first. */
+	struct drm_crtc_state base;
+	/* Shadow values for legacy userspace support. */
+	unsigned int rotation;
+	unsigned int zpos;
+};
+
 #define to_omap_crtc(x) container_of(x, struct omap_crtc, base)
 
 struct omap_crtc {
@@ -445,6 +455,8 @@ static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc)
 static int omap_crtc_atomic_check(struct drm_crtc *crtc,
 				struct drm_crtc_state *state)
 {
+	struct drm_plane_state *pri_state;
+
 	if (state->color_mgmt_changed && state->gamma_lut) {
 		uint length = state->gamma_lut->length /
 			sizeof(struct drm_color_lut);
@@ -453,6 +465,16 @@ static int omap_crtc_atomic_check(struct drm_crtc *crtc,
 			return -EINVAL;
 	}
 
+	pri_state = drm_atomic_get_new_plane_state(state->state, crtc->primary);
+	if (pri_state) {
+		struct omap_crtc_state *omap_crtc_state =
+			to_omap_crtc_state(state);
+
+		/* Mirror new values for zpos and rotation in omap_crtc_state */
+		omap_crtc_state->zpos = pri_state->zpos;
+		omap_crtc_state->rotation = pri_state->rotation;
+	}
+
 	return 0;
 }
 
@@ -498,39 +520,32 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
-static bool omap_crtc_is_plane_prop(struct drm_crtc *crtc,
-	struct drm_property *property)
-{
-	struct drm_device *dev = crtc->dev;
-	struct omap_drm_private *priv = dev->dev_private;
-
-	return property == priv->zorder_prop ||
-		property == crtc->primary->rotation_property;
-}
-
 static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
 					 struct drm_crtc_state *state,
 					 struct drm_property *property,
 					 uint64_t val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		struct drm_plane_state *plane_state;
-		struct drm_plane *plane = crtc->primary;
-
-		/*
-		 * Delegate property set to the primary plane. Get the plane
-		 * state and set the property directly.
-		 */
-
-		plane_state = drm_atomic_get_plane_state(state->state, plane);
-		if (IS_ERR(plane_state))
-			return PTR_ERR(plane_state);
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct drm_plane_state *plane_state;
 
-		return drm_atomic_plane_set_property(plane, plane_state,
-				property, val);
-	}
+	/*
+	 * Delegate property set to the primary plane. Get the plane state and
+	 * set the property directly, the shadow copy will be assigned in the
+	 * omap_crtc_atomic_check callback. This way updates to plane state will
+	 * always be mirrored in the crtc state correctly.
+	 */
+	plane_state = drm_atomic_get_plane_state(state->state, crtc->primary);
+	if (IS_ERR(plane_state))
+		return PTR_ERR(plane_state);
+
+	if (property == crtc->primary->rotation_property)
+		plane_state->rotation = val;
+	else if (property == priv->zorder_prop)
+		plane_state->zpos = val;
+	else
+		return -EINVAL;
 
-	return -EINVAL;
+	return 0;
 }
 
 static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
@@ -538,28 +553,59 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
 					 struct drm_property *property,
 					 uint64_t *val)
 {
-	if (omap_crtc_is_plane_prop(crtc, property)) {
-		/*
-		 * Delegate property get to the primary plane. The
-		 * drm_atomic_plane_get_property() function isn't exported, but
-		 * can be called through drm_object_property_get_value() as that
-		 * will call drm_atomic_get_property() for atomic drivers.
-		 */
-		return drm_object_property_get_value(&crtc->primary->base,
-				property, val);
-	}
+	struct omap_drm_private *priv = crtc->dev->dev_private;
+	struct omap_crtc_state *omap_state = to_omap_crtc_state(state);
+
+	if (property == crtc->primary->rotation_property)
+		*val = omap_state->rotation;
+	else if (property == priv->zorder_prop)
+		*val = omap_state->zpos;
+	else
+		return -EINVAL;
+
+	return 0;
+}
+
+static void omap_crtc_reset(struct drm_crtc *crtc)
+{
+	if (crtc->state)
+		__drm_atomic_helper_crtc_destroy_state(crtc->state);
+
+	kfree(crtc->state);
+	crtc->state = kzalloc(sizeof(struct omap_crtc_state), GFP_KERNEL);
+
+	if (crtc->state)
+		crtc->state->crtc = crtc;
+}
+
+static struct drm_crtc_state *
+omap_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct omap_crtc_state *state, *current_state;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	current_state = to_omap_crtc_state(crtc->state);
+
+	state = kmalloc(sizeof(*state), GFP_KERNEL);
+	if (state)
+		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	state->zpos = current_state->zpos;
+	state->rotation = current_state->rotation;
 
-	return -EINVAL;
+	return &state->base;
 }
 
 static const struct drm_crtc_funcs omap_crtc_funcs = {
-	.reset = drm_atomic_helper_crtc_reset,
+	.reset = omap_crtc_reset,
 	.set_config = drm_atomic_helper_set_config,
 	.destroy = omap_crtc_destroy,
 	.page_flip = drm_atomic_helper_page_flip,
 	.gamma_set = drm_atomic_helper_legacy_gamma_set,
 	.set_property = drm_atomic_helper_crtc_set_property,
-	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
+	.atomic_duplicate_state = omap_crtc_duplicate_state,
 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 	.atomic_set_property = omap_crtc_atomic_set_property,
 	.atomic_get_property = omap_crtc_atomic_get_property,
-- 
2.11.0


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
  2017-07-25  8:01   ` Daniel Vetter
  (?)
@ 2017-08-08 10:03     ` Vincent ABRIOU
  -1 siblings, 0 replies; 84+ messages in thread
From: Vincent ABRIOU @ 2017-08-08 10:03 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: DRI Development, Daniel Vetter, Liviu Dudau, Brian Starkey,
	Mali DP Maintainers, Boris Brezillon, Jani Nikula, Sean Paul,
	David Airlie, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
	Kyungmin Park, Kukjin Kim, Krzysztof Kozlowski, Ben Skeggs,
	Tomi Valkeinen, Laurent Pinchart, Benjamin Gaignard,
	Yannick FERTRE, Philippe CORNU, Jyri Sarha,
	Ville Syrjälä,
	Rongrong Zou, Shawn Guo, Alexey Brodkin, Eric Engestrom,
	Chris Wilson, Rob Clark, Archit Taneja, linux-arm-kernel,
	linux-samsung-soc, nouveau, linux-renesas-soc, Thomas Hellstrom,
	Maxime Ripard



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[...]

>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -

Acked-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-08-08 10:03     ` Vincent ABRIOU
  0 siblings, 0 replies; 84+ messages in thread
From: Vincent ABRIOU @ 2017-08-08 10:03 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: David Airlie, nouveau, DRI Development, Laurent Pinchart,
	Benjamin Gaignard, Daniel Vetter, Boris Brezillon, Archit Taneja,
	linux-samsung-soc, Joonyoung Shim, Alexey Brodkin,
	Krzysztof Kozlowski, Tomi Valkeinen, Mali DP Maintainers,
	Ben Skeggs, Thomas Hellstrom, Eric Engestrom, linux-renesas-soc,
	Inki Dae



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[...]

>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -

Acked-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
@ 2017-08-08 10:03     ` Vincent ABRIOU
  0 siblings, 0 replies; 84+ messages in thread
From: Vincent ABRIOU @ 2017-08-08 10:03 UTC (permalink / raw)
  To: linux-arm-kernel



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[...]

>   drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>   drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>   drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -

Acked-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 6/8] drm: Nuke drm_atomic_helper_connector_set_property
  2017-07-25  8:01   ` [PATCH 6/8] drm: Nuke drm_atomic_helper_connector_set_property Daniel Vetter
       [not found]     ` <20170725080122.20548-7-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
@ 2017-08-08 10:04     ` Vincent ABRIOU
  1 sibling, 0 replies; 84+ messages in thread
From: Vincent ABRIOU @ 2017-08-08 10:04 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: nouveau, DRI Development, Daniel Vetter, Ben Skeggs



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_connector_set_property.
> 
> The only special case is nouveau which used one function for both
> pre-nv50 legacy modeset code and post-nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> What is rather strange here is how few drivers set this up, I suspect
> the earlier patch to handle properties in the core did end up fixing a
> pile of possible issues.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[...]

>   drivers/gpu/drm/sti/sti_hdmi.c              |  1 -

Acked-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
@ 2017-08-08 10:05     ` Vincent ABRIOU
  -1 siblings, 0 replies; 84+ messages in thread
From: Vincent ABRIOU @ 2017-08-08 10:05 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, nouveau, DRI Development,
	virtualization, Tomi Valkeinen, linux-mediatek, Laurent Pinchart,
	Romain Perier, Daniel Vetter, Jyri Sarha, Marek Vasut,
	linux-renesas-soc, Kevin Hilman, Alexey Brodkin, Russell King,
	Krzysztof Kozlowski, Jonathan Hunter, Xinliang



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[...]

>   drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -

Acked-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
  2017-07-25  8:01   ` Daniel Vetter
                     ` (15 preceding siblings ...)
  (?)
@ 2017-08-08 10:05   ` Vincent ABRIOU
  -1 siblings, 0 replies; 84+ messages in thread
From: Vincent ABRIOU @ 2017-08-08 10:05 UTC (permalink / raw)
  To: Daniel Vetter, Intel Graphics Development
  Cc: Martyn Welch, Neil Armstrong, David Airlie, nouveau,
	DRI Development, virtualization, Andrzej Hajda, Tomi Valkeinen,
	linux-mediatek, Laurent Pinchart, Benjamin Gaignard,
	Romain Perier, Daniel Vetter, Jyri Sarha, Heiko Stuebner,
	Marek Vasut, linux-renesas-soc, Archit Taneja, Lars-Pete



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[...]

>   drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -

Acked-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

^ permalink raw reply	[flat|nested] 84+ messages in thread

* [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms
@ 2017-08-08 10:05     ` Vincent ABRIOU
  0 siblings, 0 replies; 84+ messages in thread
From: Vincent ABRIOU @ 2017-08-08 10:05 UTC (permalink / raw)
  To: linus-amlogic



On 07/25/2017 10:01 AM, Daniel Vetter wrote:
> It's dead code, the core handles all this directly now.
> 
> The only special case is nouveau and tda988x which used one function
> for both legacy modeset code and -nv50 atomic world instead of 2
> vtables. But amounts to exactly the same.
> 
> v2: Rebase over the panel/brideg refactorings in stm/ltdc.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

[...]

>   drivers/gpu/drm/sti/sti_dvo.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hda.c                      |  1 -
>   drivers/gpu/drm/sti/sti_hdmi.c                     |  1 -

Acked-by: Vincent Abriou <vincent.abriou@st.com>

BR
Vincent

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH v7] drm/omap: Rework the rotation-on-crtc hack
  2017-08-07 10:20                 ` [PATCH v7] " Maarten Lankhorst
@ 2017-08-08 12:08                   ` Tomi Valkeinen
  0 siblings, 0 replies; 84+ messages in thread
From: Tomi Valkeinen @ 2017-08-08 12:08 UTC (permalink / raw)
  To: Maarten Lankhorst, Daniel Vetter
  Cc: Daniel Vetter, Laurent Pinchart, DRI Development


[-- Attachment #1.1.1: Type: text/plain, Size: 1568 bytes --]

On 07/08/17 13:20, Maarten Lankhorst wrote:

> I want/need to rework the core property handling, and this hack is
> getting in the way. But since it's a non-standard propety only used by
> legacy userspace we know that this will only every be called from
> ioctl code. And never on some other free-standing state struct, where
> this old hack wouldn't work either.
> 
> v2: don't forget zorder and get_property!
> 
> v3: Shadow the legacy state to avoid locking issues in get_property
> (Maarten).
> 
> v4: Review from Laurent
> - Move struct omap_crtc_state into omap_crtc.c
> - Clean up comments.
> - Don't forget to copy the shadowed state over on duplicate.
> 
> v5: Don't forget to update the reset handler (Maarten).
> v6: Update omap_crtc_state shadow values in omap_crtc_atomic_check (Maarten).
> v7:
> - Fix get_property to return 0 and set value in *val (Maarten).
> - Update comment in set_property for changes in v6 (Maarten).
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (v4)
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  drivers/gpu/drm/omapdrm/omap_crtc.c | 124 ++++++++++++++++++++++++------------
>  1 file changed, 85 insertions(+), 39 deletions(-)

Thanks, works now.

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

 Tomi


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property
  2017-07-25  8:01   ` Daniel Vetter
                     ` (5 preceding siblings ...)
  (?)
@ 2017-08-08 12:31   ` Laurent Pinchart
  -1 siblings, 0 replies; 84+ messages in thread
From: Laurent Pinchart @ 2017-08-08 12:31 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: David Airlie, Alexey Brodkin, DRI Development, Benjamin Gaignard,
	Daniel Vetter, Boris Brezillon, Archit Taneja, linux-samsung-soc,
	Joonyoung Shim, el.com, Krzysztof Kozlowski, Tomi Valkeinen,
	Mali DP Maintainers, Ben Skeggs, nouveau, Thomas Hellstrom,
	Intel Graphics Development, Eric Engestrom, linux-renesas-soc,
	Inki Dae, Jyri Sarha, Vincent Abriou

Hi Daniel,

Thank you for the patch.

On Tuesday 25 Jul 2017 10:01:19 Daniel Vetter wrote:
> It's dead code, the core handles all this directly now. This also
> allows us to unexport drm_atomic_helper_plane_set_property.

I assume you meant drm_atomic_plane_set_property. With that fixed,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Joonyoung Shim <jy0922.shim@samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Vincent Abriou <vincent.abriou@st.com>
> Cc: Yannick Fertre <yannick.fertre@st.com>
> Cc: Philippe Cornu <philippe.cornu@st.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Eric Engestrom <eric@engestrom.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: Thomas Hellstrom <thellstrom@vmware.com>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  drivers/gpu/drm/arm/malidp_planes.c             |  1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |  1 -
>  drivers/gpu/drm/drm_atomic.c                    |  3 +-
>  drivers/gpu/drm/drm_atomic_helper.c             | 55 ----------------------
>  drivers/gpu/drm/exynos/exynos_drm_plane.c       |  1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |  1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |  1 -
>  drivers/gpu/drm/i915/intel_display.c            |  2 -
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |  2 -
>  drivers/gpu/drm/nouveau/nv50_display.c          |  1 -
>  drivers/gpu/drm/omapdrm/omap_plane.c            |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_plane.c         |  1 -
>  drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |  1 -
>  drivers/gpu/drm/sti/sti_cursor.c                |  1 -
>  drivers/gpu/drm/sti/sti_gdp.c                   |  1 -
>  drivers/gpu/drm/sti/sti_hqvdp.c                 |  1 -
>  drivers/gpu/drm/stm/ltdc.c                      |  1 -
>  drivers/gpu/drm/tilcdc/tilcdc_plane.c           |  1 -
>  include/drm/drm_atomic.h                        |  3 --
>  include/drm/drm_atomic_helper.h                 |  3 --
>  20 files changed, 1 insertion(+), 81 deletions(-)

-- 
Regards,

Laurent Pinchart

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 2/8] drm: Don't update property values for atomic drivers
  2017-07-25  8:01 ` [PATCH 2/8] drm: Don't update property values for atomic drivers Daniel Vetter
  2017-07-25  8:32   ` Maarten Lankhorst
  2017-07-25 12:01   ` [PATCH] " Daniel Vetter
@ 2017-08-11 22:20   ` Laurent Pinchart
  2017-08-14  7:25     ` Daniel Vetter
  2 siblings, 1 reply; 84+ messages in thread
From: Laurent Pinchart @ 2017-08-11 22:20 UTC (permalink / raw)
  To: dri-devel; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

Hi Daniel,

On Tuesday 25 Jul 2017 10:01:16 Daniel Vetter wrote:
> Atomic drivers only use the property value store for immutable (i.e.
> can't be set by userspace, but the kernel can still adjust it)
> properties. The only tricky part is the removal of the update in
> drm_atomic_helper_update_legacy_modeset_state().
> 
> This was added in
> 
> commit 8c10342cb48f3140d9abeadcfd2fa6625d447282 (tag:
> topic/drm-misc-2015-07-28) Author: Maarten Lankhorst
> <maarten.lankhorst@linux.intel.com>
> Date:   Mon Jul 27 13:24:29 2015 +0200
> 
>     drm/atomic: Update legacy DPMS state during modesets, v3.
> 
> by copying it from the i915 code, where it was originally added in
> 
> commit 68d3472047a572936551f8ff0b6f4016c5a1fdef
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date:   Thu Sep 6 22:08:35 2012 +0200
> 
>     drm/i915: update dpms property in set_mode
> 
> for the legacy modeset code. The reason we needed this hack was that
> i915 didn't yet set DRIVER_ATOMIC, and we checked for that instead of
> the newer-ish drm_drv_uses_atomic_modeset(), which avoids such
> troubles. With the correct feature checks this isn't needed anymore at
> all.
> 
> Also make sure that drivers don't accidentally get this wrong by
> making the exported version of drm_object_property_get_value() only
> work for legacy drivers. Only gma500 uses it anyway.
> 
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/drm_atomic_helper.c |  4 ---
>  drivers/gpu/drm/drm_connector.c     |  3 +--
>  drivers/gpu/drm/drm_crtc.c          |  2 +-
>  drivers/gpu/drm/drm_mode_object.c   | 49 ++++++++++++++++++++--------------
>  drivers/gpu/drm/drm_plane.c         |  2 +-
>  5 files changed, 33 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c
> b/drivers/gpu/drm/drm_atomic_helper.c index 7582bbc5decc..4a960c741e35
> 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -921,16 +921,12 @@ drm_atomic_helper_update_legacy_modeset_state(struct
> drm_device *dev, crtc = new_conn_state->crtc;
>  		if ((!crtc && old_conn_state->crtc) ||
>  		    (crtc && drm_atomic_crtc_needs_modeset(crtc->state))) {
> -			struct drm_property *dpms_prop =
> -				dev->mode_config.dpms_property;
>  			int mode = DRM_MODE_DPMS_OFF;
> 
>  			if (crtc && crtc->state->active)
>  				mode = DRM_MODE_DPMS_ON;
> 
>  			connector->dpms = mode;
> -			drm_object_property_set_value(&connector->base,
> -						      dpms_prop, mode);
>  		}
>  	}
> 
> diff --git a/drivers/gpu/drm/drm_connector.c
> b/drivers/gpu/drm/drm_connector.c index 8072e6e4c62c..349104eadefe 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -1225,8 +1225,7 @@ int drm_mode_connector_set_obj_prop(struct
> drm_mode_object *obj, } else if (connector->funcs->set_property)
>  		ret = connector->funcs->set_property(connector, property, 
value);
> 
> -	/* store the property value if successful */
> -	if (!ret)
> +	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
>  		drm_object_property_set_value(&connector->base, property, 
value);
>  	return ret;
>  }
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 5af25ce5bf7c..7d4fcdd34342 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -736,7 +736,7 @@ int drm_mode_crtc_set_obj_prop(struct drm_mode_object
> *obj,
> 
>  	if (crtc->funcs->set_property)
>  		ret = crtc->funcs->set_property(crtc, property, value);
> -	if (!ret)
> +	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
>  		drm_object_property_set_value(obj, property, value);
> 
>  	return ret;
> diff --git a/drivers/gpu/drm/drm_mode_object.c
> b/drivers/gpu/drm/drm_mode_object.c index da9a9adbcc98..92743a796bf0 100644
> --- a/drivers/gpu/drm/drm_mode_object.c
> +++ b/drivers/gpu/drm/drm_mode_object.c
> @@ -233,6 +233,9 @@ int drm_object_property_set_value(struct drm_mode_object
> *obj, {
>  	int i;
> 
> +	WARN_ON(drm_drv_uses_atomic_modeset(property->dev) &&
> +		!(property->flags & DRM_MODE_PROP_IMMUTABLE));

It would have been nice to remove the calls to drm_object_property_set_value() 
for the dpms property from drivers before adding this :-/ Three drivers (rcar-
du, shmobile and fsl-dcu) initialize the connector's DPMS property to OFF 
using this call (the default being ON).

Following the DPMS code paths always give me a headache, so if you know by 
heart how I should replace the set property call, I'm all ears :-)

>  	for (i = 0; i < obj->properties->count; i++) {
>  		if (obj->properties->properties[i] == property) {
>  			obj->properties->values[i] = val;
> @@ -244,24 +247,7 @@ int drm_object_property_set_value(struct
> drm_mode_object *obj, }
>  EXPORT_SYMBOL(drm_object_property_set_value);
> 
> -/**
> - * drm_object_property_get_value - retrieve the value of a property
> - * @obj: drm mode object to get property value from
> - * @property: property to retrieve
> - * @val: storage for the property value
> - *
> - * This function retrieves the softare state of the given property for the
> given - * property. Since there is no driver callback to retrieve the
> current property - * value this might be out of sync with the hardware,
> depending upon the driver - * and property.
> - *
> - * Atomic drivers should never call this function directly, the core will
> read - * out property values through the various ->atomic_get_property
> callbacks. - *
> - * Returns:
> - * Zero on success, error code on failure.
> - */
> -int drm_object_property_get_value(struct drm_mode_object *obj,
> +int __drm_object_property_get_value(struct drm_mode_object *obj,
>  				  struct drm_property *property, uint64_t 
*val)
>  {
>  	int i;
> @@ -284,6 +270,31 @@ int drm_object_property_get_value(struct
> drm_mode_object *obj,
> 
>  	return -EINVAL;
>  }
> +
> +/**
> + * drm_object_property_get_value - retrieve the value of a property
> + * @obj: drm mode object to get property value from
> + * @property: property to retrieve
> + * @val: storage for the property value
> + *
> + * This function retrieves the softare state of the given property for the
> given + * property. Since there is no driver callback to retrieve the
> current property + * value this might be out of sync with the hardware,
> depending upon the driver + * and property.
> + *
> + * Atomic drivers should never call this function directly, the core will
> read + * out property values through the various ->atomic_get_property
> callbacks. + *
> + * Returns:
> + * Zero on success, error code on failure.
> + */
> +int drm_object_property_get_value(struct drm_mode_object *obj,
> +				  struct drm_property *property, uint64_t 
*val)
> +{
> +	WARN_ON(drm_drv_uses_atomic_modeset(property->dev));
> +
> +	return __drm_object_property_get_value(obj, property, val);
> +}
>  EXPORT_SYMBOL(drm_object_property_get_value);
> 
>  /* helper for getconnector and getproperties ioctls */
> @@ -302,7 +313,7 @@ int drm_mode_object_get_properties(struct
> drm_mode_object *obj, bool atomic, continue;
> 
>  		if (*arg_count_props > count) {
> -			ret = drm_object_property_get_value(obj, prop, &val);
> +			ret = __drm_object_property_get_value(obj, prop, 
&val);
>  			if (ret)
>  				return ret;
> 
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 5dc8c4350602..b4ffd0455200 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -330,7 +330,7 @@ int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
> 
>  	if (plane->funcs->set_property)
>  		ret = plane->funcs->set_property(plane, property, value);
> -	if (!ret)
> +	if (!ret && drm_drv_uses_atomic_modeset(property->dev))
>  		drm_object_property_set_value(obj, property, value);
> 
>  	return ret;

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 2/8] drm: Don't update property values for atomic drivers
  2017-08-11 22:20   ` [PATCH 2/8] " Laurent Pinchart
@ 2017-08-14  7:25     ` Daniel Vetter
  2017-08-14 10:32       ` Laurent Pinchart
  0 siblings, 1 reply; 84+ messages in thread
From: Daniel Vetter @ 2017-08-14  7:25 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: Daniel Vetter, Intel Graphics Development, dri-devel

On Sat, Aug 12, 2017 at 12:20 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Tuesday 25 Jul 2017 10:01:16 Daniel Vetter wrote:
>> diff --git a/drivers/gpu/drm/drm_mode_object.c
>> b/drivers/gpu/drm/drm_mode_object.c index da9a9adbcc98..92743a796bf0 100644
>> --- a/drivers/gpu/drm/drm_mode_object.c
>> +++ b/drivers/gpu/drm/drm_mode_object.c
>> @@ -233,6 +233,9 @@ int drm_object_property_set_value(struct drm_mode_object
>> *obj, {
>>       int i;
>>
>> +     WARN_ON(drm_drv_uses_atomic_modeset(property->dev) &&
>> +             !(property->flags & DRM_MODE_PROP_IMMUTABLE));
>
> It would have been nice to remove the calls to drm_object_property_set_value()
> for the dpms property from drivers before adding this :-/ Three drivers (rcar-
> du, shmobile and fsl-dcu) initialize the connector's DPMS property to OFF
> using this call (the default being ON).
>
> Following the DPMS code paths always give me a headache, so if you know by
> heart how I should replace the set property call, I'm all ears :-)

Remove, it doesn't do anything for kms drivers. The value these calls
update was never consulted when reading the property, instead
drm_atomic_connector_get_property() directly looks at
drm_connector->dpms. These calls where only needed for legacy modeset.
Also note that the default _ON is the right one, since DPMS state is
in addition to modeset state. dpms should actually be set to _ON when
you enable the display using a modeset call, atomic takes care of that
in drm_atomic_helper_update_legacy_modeset_state().

Aka we found a using this WARN_ON!

And if you think the above explanation should be somewhere in
kerneldoc, pls add :-)
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 2/8] drm: Don't update property values for atomic drivers
  2017-08-14  7:25     ` Daniel Vetter
@ 2017-08-14 10:32       ` Laurent Pinchart
  2017-08-14 14:09         ` Daniel Vetter
  0 siblings, 1 reply; 84+ messages in thread
From: Laurent Pinchart @ 2017-08-14 10:32 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, Intel Graphics Development, dri-devel

On Monday 14 Aug 2017 09:25:47 Daniel Vetter wrote:
> On Sat, Aug 12, 2017 at 12:20 AM, Laurent Pinchart
> 
> <laurent.pinchart@ideasonboard.com> wrote:
> > On Tuesday 25 Jul 2017 10:01:16 Daniel Vetter wrote:
> >> diff --git a/drivers/gpu/drm/drm_mode_object.c
> >> b/drivers/gpu/drm/drm_mode_object.c index da9a9adbcc98..92743a796bf0
> >> 100644
> >> --- a/drivers/gpu/drm/drm_mode_object.c
> >> +++ b/drivers/gpu/drm/drm_mode_object.c
> >> @@ -233,6 +233,9 @@ int drm_object_property_set_value(struct
> >> drm_mode_object *obj, {
> >> 
> >>       int i;
> >> 
> >> +     WARN_ON(drm_drv_uses_atomic_modeset(property->dev) &&
> >> +             !(property->flags & DRM_MODE_PROP_IMMUTABLE));
> > 
> > It would have been nice to remove the calls to
> > drm_object_property_set_value() for the dpms property from drivers before
> > adding this :-/ Three drivers (rcar- du, shmobile and fsl-dcu) initialize
> > the connector's DPMS property to OFF using this call (the default being
> > ON).
> > 
> > Following the DPMS code paths always give me a headache, so if you know by
> > heart how I should replace the set property call, I'm all ears :-)
> 
> Remove, it doesn't do anything for kms drivers. The value these calls
> update was never consulted when reading the property, instead
> drm_atomic_connector_get_property() directly looks at
> drm_connector->dpms.

But DRM_IOCTL_MODE_OBJ_GETPROPERTIES doesn't, it gets the property value 
directly, doesn't it ?

> These calls where only needed for legacy modeset. Also note that the default
> _ON is the right one, since DPMS state is in addition to modeset state. dpms
> should actually be set to _ON when you enable the display using a modeset
> call, atomic takes care of that in
> drm_atomic_helper_update_legacy_modeset_state().

Sure, but the connectors should start disabled, shouldn't they ?

> Aka we found a using this WARN_ON!
> 
> And if you think the above explanation should be somewhere in
> kerneldoc, pls add :-)

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 84+ messages in thread

* Re: [PATCH 2/8] drm: Don't update property values for atomic drivers
  2017-08-14 10:32       ` Laurent Pinchart
@ 2017-08-14 14:09         ` Daniel Vetter
  0 siblings, 0 replies; 84+ messages in thread
From: Daniel Vetter @ 2017-08-14 14:09 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Daniel Vetter, Intel Graphics Development, dri-devel, Daniel Vetter

On Mon, Aug 14, 2017 at 01:32:07PM +0300, Laurent Pinchart wrote:
> On Monday 14 Aug 2017 09:25:47 Daniel Vetter wrote:
> > On Sat, Aug 12, 2017 at 12:20 AM, Laurent Pinchart
> > 
> > <laurent.pinchart@ideasonboard.com> wrote:
> > > On Tuesday 25 Jul 2017 10:01:16 Daniel Vetter wrote:
> > >> diff --git a/drivers/gpu/drm/drm_mode_object.c
> > >> b/drivers/gpu/drm/drm_mode_object.c index da9a9adbcc98..92743a796bf0
> > >> 100644
> > >> --- a/drivers/gpu/drm/drm_mode_object.c
> > >> +++ b/drivers/gpu/drm/drm_mode_object.c
> > >> @@ -233,6 +233,9 @@ int drm_object_property_set_value(struct
> > >> drm_mode_object *obj, {
> > >> 
> > >>       int i;
> > >> 
> > >> +     WARN_ON(drm_drv_uses_atomic_modeset(property->dev) &&
> > >> +             !(property->flags & DRM_MODE_PROP_IMMUTABLE));
> > > 
> > > It would have been nice to remove the calls to
> > > drm_object_property_set_value() for the dpms property from drivers before
> > > adding this :-/ Three drivers (rcar- du, shmobile and fsl-dcu) initialize
> > > the connector's DPMS property to OFF using this call (the default being
> > > ON).
> > > 
> > > Following the DPMS code paths always give me a headache, so if you know by
> > > heart how I should replace the set property call, I'm all ears :-)
> > 
> > Remove, it doesn't do anything for kms drivers. The value these calls
> > update was never consulted when reading the property, instead
> > drm_atomic_connector_get_property() directly looks at
> > drm_connector->dpms.
> 
> But DRM_IOCTL_MODE_OBJ_GETPROPERTIES doesn't, it gets the property value 
> directly, doesn't it ?

It redirects to the atomic machinery, so should all work out.

> > These calls where only needed for legacy modeset. Also note that the default
> > _ON is the right one, since DPMS state is in addition to modeset state. dpms
> > should actually be set to _ON when you enable the display using a modeset
> > call, atomic takes care of that in
> > drm_atomic_helper_update_legacy_modeset_state().
> 
> Sure, but the connectors should start disabled, shouldn't they ?

Sure, and they are, because connector_state->crtc == NULL. DPMS only
matters if your connector is connected, which at boot-up/reset state it
isnt. Yes DPMS is one of those thing which with hindsight I'd like to
never have happened, it's probably the most quirky uabi we have :-/ 

If you have userspace that gets confused by this we need to:
a) either fix your userspace
b) if we decide to fix the kernel, fix it for everyone (i.e. in
drm_connector_init).

Given that the "standard kms driver" (aka i915.ko) doesn't do that, I
don't think we need b).
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 84+ messages in thread

end of thread, other threads:[~2017-08-14 14:09 UTC | newest]

Thread overview: 84+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-25  8:01 [PATCH 0/8] acquire ctx for everyone! Daniel Vetter
2017-07-25  8:01 ` [PATCH 1/8] drm/omap: Simplify the rotation-on-crtc hack Daniel Vetter
2017-07-25  8:47   ` Maarten Lankhorst
2017-07-25  9:24     ` [Intel-gfx] " Daniel Vetter
2017-07-31 11:48       ` Laurent Pinchart
2017-07-31 11:56         ` Tomi Valkeinen
2017-07-31 10:54   ` [PATCH] drm/omap: Rework " Daniel Vetter
2017-07-31 11:57     ` Laurent Pinchart
2017-07-31 12:45   ` Daniel Vetter
2017-07-31 13:30     ` Laurent Pinchart
2017-07-31 15:42   ` Daniel Vetter
2017-08-01  5:59     ` Maarten Lankhorst
2017-08-01 10:20       ` Laurent Pinchart
2017-08-02  8:02         ` Daniel Vetter
2017-08-02 13:20           ` Maarten Lankhorst
2017-08-04  9:57             ` Tomi Valkeinen
2017-08-04 10:02               ` Daniel Vetter
2017-08-07  9:24                 ` Maarten Lankhorst
2017-08-07  9:56                 ` Maarten Lankhorst
2017-08-07 10:20                 ` [PATCH v7] " Maarten Lankhorst
2017-08-08 12:08                   ` Tomi Valkeinen
2017-07-25  8:01 ` [PATCH 2/8] drm: Don't update property values for atomic drivers Daniel Vetter
2017-07-25  8:32   ` Maarten Lankhorst
2017-07-25 12:01   ` [PATCH] " Daniel Vetter
2017-08-11 22:20   ` [PATCH 2/8] " Laurent Pinchart
2017-08-14  7:25     ` Daniel Vetter
2017-08-14 10:32       ` Laurent Pinchart
2017-08-14 14:09         ` Daniel Vetter
2017-07-25  8:01 ` [PATCH 3/8] drm: Handle properties in the core " Daniel Vetter
2017-07-25  9:36   ` Archit Taneja
2017-07-25 12:02   ` [PATCH] " Daniel Vetter
2017-07-25  8:01 ` [PATCH 4/8] drm: Nuke drm_atomic_helper_crtc_set_property Daniel Vetter
2017-07-25  9:38   ` Archit Taneja
2017-07-25 10:05   ` Philippe CORNU
2017-08-03 13:34   ` Thomas Hellstrom
2017-07-25  8:01 ` [PATCH 5/8] drm: Nuke drm_atomic_helper_plane_set_property Daniel Vetter
2017-07-25  8:01   ` Daniel Vetter
2017-07-25  8:01   ` Daniel Vetter
2017-07-25  9:38   ` Archit Taneja
2017-07-25  9:38     ` Archit Taneja
2017-07-25  9:38     ` Archit Taneja
2017-07-25 10:06   ` Philippe CORNU
2017-07-25 10:06     ` Philippe CORNU
2017-07-25 10:06     ` Philippe CORNU
2017-07-28 16:45   ` Liviu Dudau
2017-07-28 16:45     ` Liviu Dudau
2017-07-28 16:45     ` Liviu Dudau
2017-08-08 10:03   ` Vincent ABRIOU
2017-08-08 10:03     ` Vincent ABRIOU
2017-08-08 10:03     ` Vincent ABRIOU
2017-08-08 12:31   ` Laurent Pinchart
     [not found] ` <20170725080122.20548-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2017-07-25  8:01   ` [PATCH 6/8] drm: Nuke drm_atomic_helper_connector_set_property Daniel Vetter
     [not found]     ` <20170725080122.20548-7-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2017-07-25  9:23       ` [Intel-gfx] " Maarten Lankhorst
2017-07-25  9:26         ` Daniel Vetter
2017-08-08 10:04     ` Vincent ABRIOU
2017-07-25  8:01 ` [PATCH 7/8] drm: Nuke drm_atomic_helper_connector_dpms Daniel Vetter
2017-07-25  8:01   ` Daniel Vetter
2017-07-25  8:04   ` Neil Armstrong
2017-07-25  8:04     ` Neil Armstrong
2017-07-25  8:04   ` Neil Armstrong
2017-07-25  8:59   ` Philipp Zabel
2017-07-25  8:59     ` Philipp Zabel
2017-07-25  8:59   ` Philipp Zabel
2017-07-25  9:30   ` Archit Taneja
2017-07-25  9:30     ` Archit Taneja
2017-07-25  9:30   ` Archit Taneja
2017-07-25 10:07   ` Philippe CORNU
2017-07-25 10:07   ` Philippe CORNU
2017-07-25 10:07     ` Philippe CORNU
2017-07-25 14:01   ` Laurent Pinchart
2017-07-25 14:01   ` Laurent Pinchart
2017-07-25 14:42   ` Shawn Guo
2017-07-25 14:42   ` Shawn Guo
2017-07-25 14:42     ` Shawn Guo
2017-07-26 19:00   ` Noralf Trønnes
2017-07-26 19:00   ` Noralf Trønnes
2017-07-26 19:00     ` Noralf Trønnes
2017-08-08 10:05   ` Vincent ABRIOU
2017-08-08 10:05     ` Vincent ABRIOU
2017-08-08 10:05   ` Vincent ABRIOU
2017-07-25  8:01 ` [PATCH 8/8] drm: Nuke drm_atomic_legacy_backoff Daniel Vetter
2017-07-25  9:36   ` [Intel-gfx] " Maarten Lankhorst
2017-07-25  8:44 ` ✓ Fi.CI.BAT: success for acquire ctx for everyone! Patchwork
2017-07-25 12:05 ` ✗ Fi.CI.BAT: failure for acquire ctx for everyone! (rev3) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.