dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add
@ 2022-11-03 18:22 Sean Anderson
  2022-11-03 18:22 ` [PATCH 1/2] component: Add helper for device nodes Sean Anderson
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Sean Anderson @ 2022-11-03 18:22 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, dri-devel
  Cc: alsa-devel, Xinliang Liu, Liviu Dudau, linux-kernel,
	Paul Cercueil, John Stultz, Mihail Atanassov, Will Deacon,
	Samuel Holland, Sean Anderson, Joerg Roedel, Takashi Iwai,
	Russell King, Jernej Skrabec, Chen-Yu Tsai, Mali DP Maintainers,
	linux-arm-kernel, linux-arm-msm, Alain Volmat, Xinwei Kong,
	linux-sunxi, Chun-Kuang Hu, Chen Feng, freedreno, Abhinav Kumar,
	etnaviv, Mark Brown, linux-mediatek, Matthias Brugger,
	Jaroslav Kysela, Sean Paul, Yong Wu, linux-mips, Tomi Valkeinen,
	iommu, Robin Murphy, Liam Girdwood, Dmitry Baryshkov, Tian Tao,
	Jyri Sarha

This series adds a new function component_match_add_of to simplify the
common case of calling component_match_add_release with
component_release_of and component_compare_of. There is already
drm_of_component_match_add, which allows for a custom compare function.
However, all existing users just use component_compare_of (or an
equivalent).

I can split the second commit up if that is easier to review.


Sean Anderson (2):
  component: Add helper for device nodes
  drm: Convert users of drm_of_component_match_add to
    component_match_add_of

 .../gpu/drm/arm/display/komeda/komeda_drv.c   |  6 ++--
 drivers/gpu/drm/arm/hdlcd_drv.c               |  9 +-----
 drivers/gpu/drm/arm/malidp_drv.c              | 11 +------
 drivers/gpu/drm/armada/armada_drv.c           | 10 ++++---
 drivers/gpu/drm/drm_of.c                      | 29 +++----------------
 drivers/gpu/drm/etnaviv/etnaviv_drv.c         |  4 +--
 .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   |  3 +-
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  3 +-
 drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  4 +--
 drivers/gpu/drm/msm/msm_drv.c                 | 14 ++++-----
 drivers/gpu/drm/sti/sti_drv.c                 |  3 +-
 drivers/gpu/drm/sun4i/sun4i_drv.c             |  3 +-
 drivers/gpu/drm/tilcdc/tilcdc_external.c      | 10 ++-----
 drivers/iommu/mtk_iommu.c                     |  3 +-
 drivers/iommu/mtk_iommu_v1.c                  |  3 +-
 include/drm/drm_of.h                          | 12 --------
 include/linux/component.h                     |  9 ++++++
 sound/soc/codecs/wcd938x.c                    |  6 ++--
 18 files changed, 46 insertions(+), 96 deletions(-)

-- 
2.35.1.1320.gc452695387.dirty


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

* [PATCH 1/2] component: Add helper for device nodes
  2022-11-03 18:22 [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
@ 2022-11-03 18:22 ` Sean Anderson
  2022-11-03 18:32   ` Mark Brown
  2022-11-03 18:22 ` [PATCH 2/2] drm: Convert users of drm_of_component_match_add to component_match_add_of Sean Anderson
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Sean Anderson @ 2022-11-03 18:22 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, dri-devel
  Cc: alsa-devel, Sean Anderson, Will Deacon, Joerg Roedel,
	Takashi Iwai, Liam Girdwood, linux-kernel, iommu, Mark Brown,
	linux-mediatek, linux-arm-kernel, Matthias Brugger,
	Jaroslav Kysela, Robin Murphy, Yong Wu

There is a common case where component_patch_add_release is called with
component_release_of/component_compare_of and a device node. Add a
helper and convert existing users.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---

 drivers/iommu/mtk_iommu.c    | 3 +--
 drivers/iommu/mtk_iommu_v1.c | 3 +--
 include/linux/component.h    | 9 +++++++++
 sound/soc/codecs/wcd938x.c   | 6 ++----
 4 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 2ab2ecfe01f8..483b7a9e4410 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -1079,8 +1079,7 @@ static int mtk_iommu_mm_dts_parse(struct device *dev, struct component_match **m
 		}
 		data->larb_imu[id].dev = &plarbdev->dev;
 
-		component_match_add_release(dev, match, component_release_of,
-					    component_compare_of, larbnode);
+		component_match_add_of(dev, match, larbnode);
 	}
 
 	/* Get smi-(sub)-common dev from the last larb. */
diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
index 6e0e65831eb7..fb09ed6bf550 100644
--- a/drivers/iommu/mtk_iommu_v1.c
+++ b/drivers/iommu/mtk_iommu_v1.c
@@ -672,8 +672,7 @@ static int mtk_iommu_v1_probe(struct platform_device *pdev)
 		}
 		data->larb_imu[i].dev = &plarbdev->dev;
 
-		component_match_add_release(dev, &match, component_release_of,
-					    component_compare_of, larbnode);
+		component_match_add_of(dev, &match, larbnode);
 	}
 
 	platform_set_drvdata(pdev, data);
diff --git a/include/linux/component.h b/include/linux/component.h
index df4aa75c9e7c..fb5d2dbc34d8 100644
--- a/include/linux/component.h
+++ b/include/linux/component.h
@@ -6,6 +6,7 @@
 
 
 struct device;
+struct device_node;
 
 /**
  * struct component_ops - callbacks for component drivers
@@ -128,4 +129,12 @@ static inline void component_match_add(struct device *parent,
 				    compare_data);
 }
 
+static inline void component_match_add_of(struct device *parent,
+					  struct component_match **matchptr,
+					  struct device_node *node)
+{
+	component_match_add_release(parent, matchptr, component_release_of,
+				    component_compare_of, node);
+}
+
 #endif
diff --git a/sound/soc/codecs/wcd938x.c b/sound/soc/codecs/wcd938x.c
index aca06a4026f3..2f8444e54083 100644
--- a/sound/soc/codecs/wcd938x.c
+++ b/sound/soc/codecs/wcd938x.c
@@ -4474,8 +4474,7 @@ static int wcd938x_add_slave_components(struct wcd938x_priv *wcd938x,
 	}
 
 	of_node_get(wcd938x->rxnode);
-	component_match_add_release(dev, matchptr, component_release_of,
-				    component_compare_of, wcd938x->rxnode);
+	component_match_add_of(dev, matchptr, wcd938x->rxnode);
 
 	wcd938x->txnode = of_parse_phandle(np, "qcom,tx-device", 0);
 	if (!wcd938x->txnode) {
@@ -4483,8 +4482,7 @@ static int wcd938x_add_slave_components(struct wcd938x_priv *wcd938x,
 		return -ENODEV;
 	}
 	of_node_get(wcd938x->txnode);
-	component_match_add_release(dev, matchptr, component_release_of,
-				    component_compare_of, wcd938x->txnode);
+	component_match_add_of(dev, matchptr, wcd938x->txnode);
 	return 0;
 }
 
-- 
2.35.1.1320.gc452695387.dirty


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

* [PATCH 2/2] drm: Convert users of drm_of_component_match_add to component_match_add_of
  2022-11-03 18:22 [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
  2022-11-03 18:22 ` [PATCH 1/2] component: Add helper for device nodes Sean Anderson
@ 2022-11-03 18:22 ` Sean Anderson
  2022-11-07 20:27 ` sarha
  2022-12-16 17:08 ` [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
  3 siblings, 0 replies; 8+ messages in thread
From: Sean Anderson @ 2022-11-03 18:22 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, dri-devel
  Cc: Xinliang Liu, Liviu Dudau, linux-mips, Paul Cercueil,
	John Stultz, Mihail Atanassov, Samuel Holland, Sean Anderson,
	Russell King, Jernej Skrabec, Chen-Yu Tsai, Mali DP Maintainers,
	linux-arm-msm, Alain Volmat, Xinwei Kong, linux-sunxi,
	Chun-Kuang Hu, Chen Feng, Abhinav Kumar, etnaviv, linux-mediatek,
	Matthias Brugger, Sean Paul, linux-arm-kernel, Tomi Valkeinen,
	freedreno, linux-kernel, Dmitry Baryshkov, Tian Tao, Jyri Sarha

Every user of this function either uses component_compare_of or
something equivalent. Most of them immediately put the device node as
well. Convert these users to component_match_add_of and remove
drm_of_component_match_add.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---

 .../gpu/drm/arm/display/komeda/komeda_drv.c   |  6 ++--
 drivers/gpu/drm/arm/hdlcd_drv.c               |  9 +-----
 drivers/gpu/drm/arm/malidp_drv.c              | 11 +------
 drivers/gpu/drm/armada/armada_drv.c           | 10 ++++---
 drivers/gpu/drm/drm_of.c                      | 29 +++----------------
 drivers/gpu/drm/etnaviv/etnaviv_drv.c         |  4 +--
 .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   |  3 +-
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  3 +-
 drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  4 +--
 drivers/gpu/drm/msm/msm_drv.c                 | 14 ++++-----
 drivers/gpu/drm/sti/sti_drv.c                 |  3 +-
 drivers/gpu/drm/sun4i/sun4i_drv.c             |  3 +-
 drivers/gpu/drm/tilcdc/tilcdc_external.c      | 10 ++-----
 include/drm/drm_of.h                          | 12 --------
 14 files changed, 33 insertions(+), 88 deletions(-)

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
index 9fce4239d4ad..e5bf439b799f 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
@@ -103,10 +103,8 @@ static void komeda_add_slave(struct device *master,
 	struct device_node *remote;
 
 	remote = of_graph_get_remote_node(np, port, endpoint);
-	if (remote) {
-		drm_of_component_match_add(master, match, component_compare_of, remote);
-		of_node_put(remote);
-	}
+	if (remote)
+		component_match_add_of(master, match, remote);
 }
 
 static int komeda_platform_probe(struct platform_device *pdev)
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index a032003c340c..18e58863a2f1 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -352,11 +352,6 @@ static const struct component_master_ops hdlcd_master_ops = {
 	.unbind		= hdlcd_drm_unbind,
 };
 
-static int compare_dev(struct device *dev, void *data)
-{
-	return dev->of_node == data;
-}
-
 static int hdlcd_probe(struct platform_device *pdev)
 {
 	struct device_node *port;
@@ -367,9 +362,7 @@ static int hdlcd_probe(struct platform_device *pdev)
 	if (!port)
 		return -ENODEV;
 
-	drm_of_component_match_add(&pdev->dev, &match, compare_dev, port);
-	of_node_put(port);
-
+	component_match_add_of(&pdev->dev, &match, port);
 	return component_master_add_with_match(&pdev->dev, &hdlcd_master_ops,
 					       match);
 }
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 1d0b0c54ccc7..aace8b87c6d3 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -926,13 +926,6 @@ static const struct component_master_ops malidp_master_ops = {
 	.unbind = malidp_unbind,
 };
 
-static int malidp_compare_dev(struct device *dev, void *data)
-{
-	struct device_node *np = data;
-
-	return dev->of_node == np;
-}
-
 static int malidp_platform_probe(struct platform_device *pdev)
 {
 	struct device_node *port;
@@ -946,9 +939,7 @@ static int malidp_platform_probe(struct platform_device *pdev)
 	if (!port)
 		return -ENODEV;
 
-	drm_of_component_match_add(&pdev->dev, &match, malidp_compare_dev,
-				   port);
-	of_node_put(port);
+	component_match_add_of(&pdev->dev, &match, port);
 	return component_master_add_with_match(&pdev->dev, &malidp_master_ops,
 					       match);
 }
diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
index 0643887800b4..c0211ad7a45d 100644
--- a/drivers/gpu/drm/armada/armada_drv.c
+++ b/drivers/gpu/drm/armada/armada_drv.c
@@ -184,10 +184,12 @@ static void armada_add_endpoints(struct device *dev,
 
 	for_each_endpoint_of_node(dev_node, ep) {
 		remote = of_graph_get_remote_port_parent(ep);
-		if (remote && of_device_is_available(remote))
-			drm_of_component_match_add(dev, match, component_compare_of,
-						   remote);
-		of_node_put(remote);
+		if (remote) {
+			if (of_device_is_available(remote))
+				component_match_add_of(dev, match, remote);
+			else
+				of_node_put(remote);
+		}
 	}
 }
 
diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
index 7bbcb999bb75..0a474729ddf6 100644
--- a/drivers/gpu/drm/drm_of.c
+++ b/drivers/gpu/drm/drm_of.c
@@ -78,24 +78,6 @@ uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
 }
 EXPORT_SYMBOL(drm_of_find_possible_crtcs);
 
-/**
- * drm_of_component_match_add - Add a component helper OF node match rule
- * @master: master device
- * @matchptr: component match pointer
- * @compare: compare function used for matching component
- * @node: of_node
- */
-void drm_of_component_match_add(struct device *master,
-				struct component_match **matchptr,
-				int (*compare)(struct device *, void *),
-				struct device_node *node)
-{
-	of_node_get(node);
-	component_match_add_release(master, matchptr, component_release_of,
-				    compare, node);
-}
-EXPORT_SYMBOL_GPL(drm_of_component_match_add);
-
 /**
  * drm_of_component_probe - Generic probe function for a component based master
  * @dev: master device containing the OF node
@@ -130,10 +112,9 @@ int drm_of_component_probe(struct device *dev,
 			break;
 
 		if (of_device_is_available(port->parent))
-			drm_of_component_match_add(dev, &match, compare_of,
-						   port);
-
-		of_node_put(port);
+			component_match_add_of(dev, &match, port);
+		else
+			of_node_put(port);
 	}
 
 	if (i == 0) {
@@ -171,9 +152,7 @@ int drm_of_component_probe(struct device *dev,
 				continue;
 			}
 
-			drm_of_component_match_add(dev, &match, compare_of,
-						   remote);
-			of_node_put(remote);
+			component_match_add_of(dev, &match, remote);
 		}
 		of_node_put(port);
 	}
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
index 1d2b4fb4bcf8..4a0dba34a6e7 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
@@ -590,8 +590,8 @@ static int etnaviv_pdev_probe(struct platform_device *pdev)
 			if (!first_node)
 				first_node = core_node;
 
-			drm_of_component_match_add(&pdev->dev, &match,
-						   component_compare_of, core_node);
+			of_node_get(core_node);
+			component_match_add_of(&pdev->dev, &match, core_node);
 		}
 	} else {
 		char **names = dev->platform_data;
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index 73ee7f25f734..fc736759274f 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -273,8 +273,7 @@ static int kirin_drm_platform_probe(struct platform_device *pdev)
 	if (!remote)
 		return -ENODEV;
 
-	drm_of_component_match_add(dev, &match, component_compare_of, remote);
-	of_node_put(remote);
+	component_match_add_of(dev, &match, remote);
 
 	return component_master_add_with_match(dev, &kirin_drm_ops, match);
 }
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index ab0515d2c420..75a19e6b85c0 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -1445,8 +1445,7 @@ static int ingenic_drm_probe(struct platform_device *pdev)
 	if (!np)
 		return ingenic_drm_bind(dev, false);
 
-	drm_of_component_match_add(dev, &match, component_compare_of, np);
-	of_node_put(np);
+	component_match_add_of(dev, &match, np);
 
 	return component_master_add_with_match(dev, &ingenic_master_ops, match);
 }
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 91f58db5915f..9ca265129659 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -779,8 +779,8 @@ static int mtk_drm_probe(struct platform_device *pdev)
 		    comp_type == MTK_DSI) {
 			dev_info(dev, "Adding component match for %pOF\n",
 				 node);
-			drm_of_component_match_add(dev, &match, component_compare_of,
-						   node);
+			of_node_get(node);
+			component_match_add_of(dev, &match, node);
 		}
 
 		ret = mtk_ddp_comp_init(node, &private->ddp_comp[comp_id], comp_id);
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 28034c21f6bc..1152da3d58dc 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -5,6 +5,7 @@
  * Author: Rob Clark <robdclark@gmail.com>
  */
 
+#include <linux/component.h>
 #include <linux/dma-mapping.h>
 #include <linux/fault-inject.h>
 #include <linux/kthread.h>
@@ -1148,10 +1149,9 @@ static int add_components_mdp(struct device *master_dev,
 			continue;
 
 		if (of_device_is_available(intf))
-			drm_of_component_match_add(master_dev, matchptr,
-						   component_compare_of, intf);
-
-		of_node_put(intf);
+			component_match_add_of(master_dev, matchptr, intf);
+		else
+			of_node_put(intf);
 	}
 
 	return 0;
@@ -1180,9 +1180,9 @@ static int add_gpu_components(struct device *dev,
 		return 0;
 
 	if (of_device_is_available(np))
-		drm_of_component_match_add(dev, matchptr, component_compare_of, np);
-
-	of_node_put(np);
+		component_match_add_of(dev, matchptr, np);
+	else
+		of_node_put(np);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 7abf010a3293..3ae4b73dfa92 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -238,8 +238,7 @@ static int sti_platform_probe(struct platform_device *pdev)
 	child_np = of_get_next_available_child(node, NULL);
 
 	while (child_np) {
-		drm_of_component_match_add(dev, &match, component_compare_of,
-					   child_np);
+		component_match_add_of(dev, &match, child_np);
 		child_np = of_get_next_available_child(node, child_np);
 	}
 
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index d06ffd99d86e..a67c2010c7a2 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -323,7 +323,8 @@ static int sun4i_drv_add_endpoints(struct device *dev,
 	     of_device_is_available(node))) {
 		/* Add current component */
 		DRM_DEBUG_DRIVER("Adding component %pOF\n", node);
-		drm_of_component_match_add(dev, match, component_compare_of, node);
+		of_node_get(node);
+		component_match_add_of(dev, match, node);
 		count++;
 	}
 
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_external.c b/drivers/gpu/drm/tilcdc/tilcdc_external.c
index 3b86d002ef62..0138ce02a64f 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_external.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_external.c
@@ -155,11 +155,6 @@ int tilcdc_attach_external_device(struct drm_device *ddev)
 	return ret;
 }
 
-static int dev_match_of(struct device *dev, void *data)
-{
-	return dev->of_node == data;
-}
-
 int tilcdc_get_external_components(struct device *dev,
 				   struct component_match **match)
 {
@@ -173,7 +168,8 @@ int tilcdc_get_external_components(struct device *dev,
 	}
 
 	if (match)
-		drm_of_component_match_add(dev, match, dev_match_of, node);
-	of_node_put(node);
+		component_match_add_of(dev, match, node);
+	else
+		of_node_put(node);
 	return 1;
 }
diff --git a/include/drm/drm_of.h b/include/drm/drm_of.h
index 10ab58c40746..685c44dc1dae 100644
--- a/include/drm/drm_of.h
+++ b/include/drm/drm_of.h
@@ -33,10 +33,6 @@ uint32_t drm_of_crtc_port_mask(struct drm_device *dev,
 			    struct device_node *port);
 uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
 				    struct device_node *port);
-void drm_of_component_match_add(struct device *master,
-				struct component_match **matchptr,
-				int (*compare)(struct device *, void *),
-				struct device_node *node);
 int drm_of_component_probe(struct device *dev,
 			   int (*compare_of)(struct device *, void *),
 			   const struct component_master_ops *m_ops);
@@ -69,14 +65,6 @@ static inline uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
 	return 0;
 }
 
-static inline void
-drm_of_component_match_add(struct device *master,
-			   struct component_match **matchptr,
-			   int (*compare)(struct device *, void *),
-			   struct device_node *node)
-{
-}
-
 static inline int
 drm_of_component_probe(struct device *dev,
 		       int (*compare_of)(struct device *, void *),
-- 
2.35.1.1320.gc452695387.dirty


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

* Re: [PATCH 1/2] component: Add helper for device nodes
  2022-11-03 18:22 ` [PATCH 1/2] component: Add helper for device nodes Sean Anderson
@ 2022-11-03 18:32   ` Mark Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2022-11-03 18:32 UTC (permalink / raw)
  To: Sean Anderson
  Cc: linux-arm-kernel, alsa-devel, Thomas Zimmermann, Will Deacon,
	Liam Girdwood, Robin Murphy, Joerg Roedel, Takashi Iwai,
	linux-kernel, dri-devel, Jaroslav Kysela, iommu, linux-mediatek,
	Matthias Brugger, Yong Wu

[-- Attachment #1: Type: text/plain, Size: 414 bytes --]

On Thu, Nov 03, 2022 at 02:22:21PM -0400, Sean Anderson wrote:

> There is a common case where component_patch_add_release is called with
> component_release_of/component_compare_of and a device node. Add a
> helper and convert existing users.

The usual pattern here would be to split adding the helper from updating
to use the helper - it makes things easier to merge.

Acked-by: Mark Brown <broonie@kernel.org>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH 2/2] drm: Convert users of drm_of_component_match_add to component_match_add_of
  2022-11-03 18:22 [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
  2022-11-03 18:22 ` [PATCH 1/2] component: Add helper for device nodes Sean Anderson
  2022-11-03 18:22 ` [PATCH 2/2] drm: Convert users of drm_of_component_match_add to component_match_add_of Sean Anderson
@ 2022-11-07 20:27 ` sarha
  2022-12-16 17:08 ` [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
  3 siblings, 0 replies; 8+ messages in thread
From: sarha @ 2022-11-07 20:27 UTC (permalink / raw)
  To: Sean Anderson, David Airlie, Daniel Vetter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, dri-devel
  Cc: Xinliang Liu, Liviu Dudau, linux-mips, Paul Cercueil,
	John Stultz, Mihail Atanassov, Samuel Holland, Russell King,
	Jernej Skrabec, Chen-Yu Tsai, Mali DP Maintainers, linux-arm-msm,
	Alain Volmat, Xinwei Kong, linux-sunxi, Chun-Kuang Hu, Chen Feng,
	Abhinav Kumar, etnaviv, linux-mediatek, Matthias Brugger,
	Sean Paul, linux-arm-kernel, Tomi Valkeinen, freedreno,
	linux-kernel, Dmitry Baryshkov, Tian Tao, Jyri Sarha

November 3, 2022 at 8:22 PM, "Sean Anderson" <sean.anderson@seco.com mailto:sean.anderson@seco.com?to=%22Sean%20Anderson%22%20%3Csean.anderson%40seco.com%3E > wrote:

> 
> Every user of this function either uses component_compare_of or
> something equivalent. Most of them immediately put the device node as
> well. Convert these users to component_match_add_of and remove
> drm_of_component_match_add.
> 
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>

Acked-by: Jyri Sarha <jyri.sarhaı@iki.fi>

Also tested that Beaglebone-Black HDMI audio, that relies on componet system, still works. So for tilcdc:

Tested-by: Jyri Sarha <jyri.sarha@iki.fi>

> ---
> 
> .../gpu/drm/arm/display/komeda/komeda_drv.c | 6 ++--
> drivers/gpu/drm/arm/hdlcd_drv.c | 9 +-----
> drivers/gpu/drm/arm/malidp_drv.c | 11 +------
> drivers/gpu/drm/armada/armada_drv.c | 10 ++++---
> drivers/gpu/drm/drm_of.c | 29 +++----------------
> drivers/gpu/drm/etnaviv/etnaviv_drv.c | 4 +--
> .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 3 +-
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 3 +-
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 +--
> drivers/gpu/drm/msm/msm_drv.c | 14 ++++-----
> drivers/gpu/drm/sti/sti_drv.c | 3 +-
> drivers/gpu/drm/sun4i/sun4i_drv.c | 3 +-
> drivers/gpu/drm/tilcdc/tilcdc_external.c | 10 ++-----
> include/drm/drm_of.h | 12 --------
> 14 files changed, 33 insertions(+), 88 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
> index 9fce4239d4ad..e5bf439b799f 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
> @@ -103,10 +103,8 @@ static void komeda_add_slave(struct device *master,
>  struct device_node *remote;
> 
>  remote = of_graph_get_remote_node(np, port, endpoint);
> - if (remote) {
> - drm_of_component_match_add(master, match, component_compare_of, remote);
> - of_node_put(remote);
> - }
> + if (remote)
> + component_match_add_of(master, match, remote);
> }
> 
> static int komeda_platform_probe(struct platform_device *pdev)
> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> index a032003c340c..18e58863a2f1 100644
> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> @@ -352,11 +352,6 @@ static const struct component_master_ops hdlcd_master_ops = {
>  .unbind = hdlcd_drm_unbind,
> };
> 
> -static int compare_dev(struct device *dev, void *data)
> -{
> - return dev->of_node == data;
> -}
> -
> static int hdlcd_probe(struct platform_device *pdev)
> {
>  struct device_node *port;
> @@ -367,9 +362,7 @@ static int hdlcd_probe(struct platform_device *pdev)
>  if (!port)
>  return -ENODEV;
> 
> - drm_of_component_match_add(&pdev->dev, &match, compare_dev, port);
> - of_node_put(port);
> -
> + component_match_add_of(&pdev->dev, &match, port);
>  return component_master_add_with_match(&pdev->dev, &hdlcd_master_ops,
>  match);
> }
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 1d0b0c54ccc7..aace8b87c6d3 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -926,13 +926,6 @@ static const struct component_master_ops malidp_master_ops = {
>  .unbind = malidp_unbind,
> };
> 
> -static int malidp_compare_dev(struct device *dev, void *data)
> -{
> - struct device_node *np = data;
> -
> - return dev->of_node == np;
> -}
> -
> static int malidp_platform_probe(struct platform_device *pdev)
> {
>  struct device_node *port;
> @@ -946,9 +939,7 @@ static int malidp_platform_probe(struct platform_device *pdev)
>  if (!port)
>  return -ENODEV;
> 
> - drm_of_component_match_add(&pdev->dev, &match, malidp_compare_dev,
> - port);
> - of_node_put(port);
> + component_match_add_of(&pdev->dev, &match, port);
>  return component_master_add_with_match(&pdev->dev, &malidp_master_ops,
>  match);
> }
> diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
> index 0643887800b4..c0211ad7a45d 100644
> --- a/drivers/gpu/drm/armada/armada_drv.c
> +++ b/drivers/gpu/drm/armada/armada_drv.c
> @@ -184,10 +184,12 @@ static void armada_add_endpoints(struct device *dev,
> 
>  for_each_endpoint_of_node(dev_node, ep) {
>  remote = of_graph_get_remote_port_parent(ep);
> - if (remote of_device_is_available(remote))
> - drm_of_component_match_add(dev, match, component_compare_of,
> - remote);
> - of_node_put(remote);
> + if (remote) {
> + if (of_device_is_available(remote))
> + component_match_add_of(dev, match, remote);
> + else
> + of_node_put(remote);
> + }
>  }
> }
> 
> diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
> index 7bbcb999bb75..0a474729ddf6 100644
> --- a/drivers/gpu/drm/drm_of.c
> +++ b/drivers/gpu/drm/drm_of.c
> @@ -78,24 +78,6 @@ uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
> }
> EXPORT_SYMBOL(drm_of_find_possible_crtcs);
> 
> -/**
> - * drm_of_component_match_add - Add a component helper OF node match rule
> - * @master: master device
> - * @matchptr: component match pointer
> - * @compare: compare function used for matching component
> - * @node: of_node
> - */
> -void drm_of_component_match_add(struct device *master,
> - struct component_match **matchptr,
> - int (*compare)(struct device *, void *),
> - struct device_node *node)
> -{
> - of_node_get(node);
> - component_match_add_release(master, matchptr, component_release_of,
> - compare, node);
> -}
> -EXPORT_SYMBOL_GPL(drm_of_component_match_add);
> -
> /**
> * drm_of_component_probe - Generic probe function for a component based master
> * @dev: master device containing the OF node
> @@ -130,10 +112,9 @@ int drm_of_component_probe(struct device *dev,
>  break;
> 
>  if (of_device_is_available(port->parent))
> - drm_of_component_match_add(dev, &match, compare_of,
> - port);
> -
> - of_node_put(port);
> + component_match_add_of(dev, &match, port);
> + else
> + of_node_put(port);
>  }
> 
>  if (i == 0) {
> @@ -171,9 +152,7 @@ int drm_of_component_probe(struct device *dev,
>  continue;
>  }
> 
> - drm_of_component_match_add(dev, &match, compare_of,
> - remote);
> - of_node_put(remote);
> + component_match_add_of(dev, &match, remote);
>  }
>  of_node_put(port);
>  }
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
> index 1d2b4fb4bcf8..4a0dba34a6e7 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
> @@ -590,8 +590,8 @@ static int etnaviv_pdev_probe(struct platform_device *pdev)
>  if (!first_node)
>  first_node = core_node;
> 
> - drm_of_component_match_add(&pdev->dev, &match,
> - component_compare_of, core_node);
> + of_node_get(core_node);
> + component_match_add_of(&pdev->dev, &match, core_node);
>  }
>  } else {
>  char **names = dev->platform_data;
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
> index 73ee7f25f734..fc736759274f 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
> @@ -273,8 +273,7 @@ static int kirin_drm_platform_probe(struct platform_device *pdev)
>  if (!remote)
>  return -ENODEV;
> 
> - drm_of_component_match_add(dev, &match, component_compare_of, remote);
> - of_node_put(remote);
> + component_match_add_of(dev, &match, remote);
> 
>  return component_master_add_with_match(dev, &kirin_drm_ops, match);
> }
> diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> index ab0515d2c420..75a19e6b85c0 100644
> --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
> @@ -1445,8 +1445,7 @@ static int ingenic_drm_probe(struct platform_device *pdev)
>  if (!np)
>  return ingenic_drm_bind(dev, false);
> 
> - drm_of_component_match_add(dev, &match, component_compare_of, np);
> - of_node_put(np);
> + component_match_add_of(dev, &match, np);
> 
>  return component_master_add_with_match(dev, &ingenic_master_ops, match);
> }
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index 91f58db5915f..9ca265129659 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -779,8 +779,8 @@ static int mtk_drm_probe(struct platform_device *pdev)
>  comp_type == MTK_DSI) {
>  dev_info(dev, "Adding component match for %pOF\n",
>  node);
> - drm_of_component_match_add(dev, &match, component_compare_of,
> - node);
> + of_node_get(node);
> + component_match_add_of(dev, &match, node);
>  }
> 
>  ret = mtk_ddp_comp_init(node, &private->ddp_comp[comp_id], comp_id);
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 28034c21f6bc..1152da3d58dc 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -5,6 +5,7 @@
> * Author: Rob Clark <robdclark@gmail.com>
> */
> 
> +#include <linux/component.h>
> #include <linux/dma-mapping.h>
> #include <linux/fault-inject.h>
> #include <linux/kthread.h>
> @@ -1148,10 +1149,9 @@ static int add_components_mdp(struct device *master_dev,
>  continue;
> 
>  if (of_device_is_available(intf))
> - drm_of_component_match_add(master_dev, matchptr,
> - component_compare_of, intf);
> -
> - of_node_put(intf);
> + component_match_add_of(master_dev, matchptr, intf);
> + else
> + of_node_put(intf);
>  }
> 
>  return 0;
> @@ -1180,9 +1180,9 @@ static int add_gpu_components(struct device *dev,
>  return 0;
> 
>  if (of_device_is_available(np))
> - drm_of_component_match_add(dev, matchptr, component_compare_of, np);
> -
> - of_node_put(np);
> + component_match_add_of(dev, matchptr, np);
> + else
> + of_node_put(np);
> 
>  return 0;
> }
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index 7abf010a3293..3ae4b73dfa92 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -238,8 +238,7 @@ static int sti_platform_probe(struct platform_device *pdev)
>  child_np = of_get_next_available_child(node, NULL);
> 
>  while (child_np) {
> - drm_of_component_match_add(dev, &match, component_compare_of,
> - child_np);
> + component_match_add_of(dev, &match, child_np);
>  child_np = of_get_next_available_child(node, child_np);
>  }
> 
> diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
> index d06ffd99d86e..a67c2010c7a2 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_drv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
> @@ -323,7 +323,8 @@ static int sun4i_drv_add_endpoints(struct device *dev,
>  of_device_is_available(node))) {
>  /* Add current component */
>  DRM_DEBUG_DRIVER("Adding component %pOF\n", node);
> - drm_of_component_match_add(dev, match, component_compare_of, node);
> + of_node_get(node);
> + component_match_add_of(dev, match, node);
>  count++;
>  }
> 
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_external.c b/drivers/gpu/drm/tilcdc/tilcdc_external.c
> index 3b86d002ef62..0138ce02a64f 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_external.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_external.c
> @@ -155,11 +155,6 @@ int tilcdc_attach_external_device(struct drm_device *ddev)
>  return ret;
> }
> 
> -static int dev_match_of(struct device *dev, void *data)
> -{
> - return dev->of_node == data;
> -}
> -
> int tilcdc_get_external_components(struct device *dev,
>  struct component_match **match)
> {
> @@ -173,7 +168,8 @@ int tilcdc_get_external_components(struct device *dev,
>  }
> 
>  if (match)
> - drm_of_component_match_add(dev, match, dev_match_of, node);
> - of_node_put(node);
> + component_match_add_of(dev, match, node);
> + else
> + of_node_put(node);
>  return 1;
> }
> diff --git a/include/drm/drm_of.h b/include/drm/drm_of.h
> index 10ab58c40746..685c44dc1dae 100644
> --- a/include/drm/drm_of.h
> +++ b/include/drm/drm_of.h
> @@ -33,10 +33,6 @@ uint32_t drm_of_crtc_port_mask(struct drm_device *dev,
>  struct device_node *port);
> uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
>  struct device_node *port);
> -void drm_of_component_match_add(struct device *master,
> - struct component_match **matchptr,
> - int (*compare)(struct device *, void *),
> - struct device_node *node);
> int drm_of_component_probe(struct device *dev,
>  int (*compare_of)(struct device *, void *),
>  const struct component_master_ops *m_ops);
> @@ -69,14 +65,6 @@ static inline uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
>  return 0;
> }
> 
> -static inline void
> -drm_of_component_match_add(struct device *master,
> - struct component_match **matchptr,
> - int (*compare)(struct device *, void *),
> - struct device_node *node)
> -{
> -}
> -
> static inline int
> drm_of_component_probe(struct device *dev,
>  int (*compare_of)(struct device *, void *),
> -- 
> 2.35.1.1320.gc452695387.dirty
>

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

* Re: [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add
  2022-11-03 18:22 [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
                   ` (2 preceding siblings ...)
  2022-11-07 20:27 ` sarha
@ 2022-12-16 17:08 ` Sean Anderson
  2022-12-16 17:41   ` Robin Murphy
  3 siblings, 1 reply; 8+ messages in thread
From: Sean Anderson @ 2022-12-16 17:08 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, dri-devel
  Cc: alsa-devel, Xinliang Liu, Liviu Dudau, linux-kernel,
	Paul Cercueil, John Stultz, Mihail Atanassov, Will Deacon,
	Samuel Holland, Joerg Roedel, Takashi Iwai, Russell King,
	Jernej Skrabec, Chen-Yu Tsai, Mali DP Maintainers,
	linux-arm-kernel, linux-arm-msm, Alain Volmat, Xinwei Kong,
	linux-sunxi, Chun-Kuang Hu, Chen Feng, freedreno, Abhinav Kumar,
	etnaviv, Mark Brown, linux-mediatek, Matthias Brugger,
	Jaroslav Kysela, Sean Paul, Yong Wu, linux-mips, Tomi Valkeinen,
	iommu, Robin Murphy, Liam Girdwood, Dmitry Baryshkov, Tian Tao,
	Jyri Sarha

On 11/3/22 14:22, Sean Anderson wrote:
> This series adds a new function component_match_add_of to simplify the
> common case of calling component_match_add_release with
> component_release_of and component_compare_of. There is already
> drm_of_component_match_add, which allows for a custom compare function.
> However, all existing users just use component_compare_of (or an
> equivalent).
> 
> I can split the second commit up if that is easier to review.
> 
> 
> Sean Anderson (2):
>   component: Add helper for device nodes
>   drm: Convert users of drm_of_component_match_add to
>     component_match_add_of
> 
>  .../gpu/drm/arm/display/komeda/komeda_drv.c   |  6 ++--
>  drivers/gpu/drm/arm/hdlcd_drv.c               |  9 +-----
>  drivers/gpu/drm/arm/malidp_drv.c              | 11 +------
>  drivers/gpu/drm/armada/armada_drv.c           | 10 ++++---
>  drivers/gpu/drm/drm_of.c                      | 29 +++----------------
>  drivers/gpu/drm/etnaviv/etnaviv_drv.c         |  4 +--
>  .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   |  3 +-
>  drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  3 +-
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  4 +--
>  drivers/gpu/drm/msm/msm_drv.c                 | 14 ++++-----
>  drivers/gpu/drm/sti/sti_drv.c                 |  3 +-
>  drivers/gpu/drm/sun4i/sun4i_drv.c             |  3 +-
>  drivers/gpu/drm/tilcdc/tilcdc_external.c      | 10 ++-----
>  drivers/iommu/mtk_iommu.c                     |  3 +-
>  drivers/iommu/mtk_iommu_v1.c                  |  3 +-
>  include/drm/drm_of.h                          | 12 --------
>  include/linux/component.h                     |  9 ++++++
>  sound/soc/codecs/wcd938x.c                    |  6 ++--
>  18 files changed, 46 insertions(+), 96 deletions(-)
> 

ping?

Should I send a v2 broken up like Mark suggested?

--Sean

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

* Re: [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add
  2022-12-16 17:08 ` [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
@ 2022-12-16 17:41   ` Robin Murphy
  2022-12-22 21:24     ` Sean Anderson
  0 siblings, 1 reply; 8+ messages in thread
From: Robin Murphy @ 2022-12-16 17:41 UTC (permalink / raw)
  To: Sean Anderson, David Airlie, Daniel Vetter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, dri-devel
  Cc: alsa-devel, Xinliang Liu, Liviu Dudau, linux-kernel,
	Paul Cercueil, John Stultz, Mihail Atanassov, Will Deacon,
	Samuel Holland, Joerg Roedel, Takashi Iwai, Russell King,
	Jernej Skrabec, Chen-Yu Tsai, Mali DP Maintainers,
	linux-arm-kernel, linux-arm-msm, Alain Volmat, Xinwei Kong,
	linux-sunxi, Chun-Kuang Hu, Chen Feng, Abhinav Kumar, etnaviv,
	Mark Brown, linux-mediatek, Matthias Brugger, Jaroslav Kysela,
	Sean Paul, Yong Wu, linux-mips, Tomi Valkeinen, iommu, freedreno,
	Liam Girdwood, Dmitry Baryshkov, Tian Tao, Jyri Sarha

On 2022-12-16 17:08, Sean Anderson wrote:
> On 11/3/22 14:22, Sean Anderson wrote:
>> This series adds a new function component_match_add_of to simplify the
>> common case of calling component_match_add_release with
>> component_release_of and component_compare_of. There is already
>> drm_of_component_match_add, which allows for a custom compare function.
>> However, all existing users just use component_compare_of (or an
>> equivalent).
>>
>> I can split the second commit up if that is easier to review.
>>
>>
>> Sean Anderson (2):
>>    component: Add helper for device nodes
>>    drm: Convert users of drm_of_component_match_add to
>>      component_match_add_of
>>
>>   .../gpu/drm/arm/display/komeda/komeda_drv.c   |  6 ++--
>>   drivers/gpu/drm/arm/hdlcd_drv.c               |  9 +-----
>>   drivers/gpu/drm/arm/malidp_drv.c              | 11 +------
>>   drivers/gpu/drm/armada/armada_drv.c           | 10 ++++---
>>   drivers/gpu/drm/drm_of.c                      | 29 +++----------------
>>   drivers/gpu/drm/etnaviv/etnaviv_drv.c         |  4 +--
>>   .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   |  3 +-
>>   drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  3 +-
>>   drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  4 +--
>>   drivers/gpu/drm/msm/msm_drv.c                 | 14 ++++-----
>>   drivers/gpu/drm/sti/sti_drv.c                 |  3 +-
>>   drivers/gpu/drm/sun4i/sun4i_drv.c             |  3 +-
>>   drivers/gpu/drm/tilcdc/tilcdc_external.c      | 10 ++-----
>>   drivers/iommu/mtk_iommu.c                     |  3 +-
>>   drivers/iommu/mtk_iommu_v1.c                  |  3 +-
>>   include/drm/drm_of.h                          | 12 --------
>>   include/linux/component.h                     |  9 ++++++
>>   sound/soc/codecs/wcd938x.c                    |  6 ++--
>>   18 files changed, 46 insertions(+), 96 deletions(-)
>>
> 
> ping?
> 
> Should I send a v2 broken up like Mark suggested?

FWIW you'll need to rebase the IOMMU changes on 6.2-rc1 anyway - 
mtk_iommu stops using component_match_add_release() at all.

Thanks,
Robin.

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

* Re: [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add
  2022-12-16 17:41   ` Robin Murphy
@ 2022-12-22 21:24     ` Sean Anderson
  0 siblings, 0 replies; 8+ messages in thread
From: Sean Anderson @ 2022-12-22 21:24 UTC (permalink / raw)
  To: Robin Murphy, David Airlie, Daniel Vetter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, dri-devel
  Cc: alsa-devel, linux-arm-msm, linux-kernel, etnaviv, iommu,
	linux-mediatek, linux-arm-kernel, linux-mips, freedreno,
	linux-sunxi, Yong Wu

Hi Robin,

On 12/16/22 12:41, Robin Murphy wrote:
> On 2022-12-16 17:08, Sean Anderson wrote:
>> On 11/3/22 14:22, Sean Anderson wrote:
>>> This series adds a new function component_match_add_of to simplify the
>>> common case of calling component_match_add_release with
>>> component_release_of and component_compare_of. There is already
>>> drm_of_component_match_add, which allows for a custom compare function.
>>> However, all existing users just use component_compare_of (or an
>>> equivalent).
>>>
>>> I can split the second commit up if that is easier to review.
>>>
>>>
>>> Sean Anderson (2):
>>>    component: Add helper for device nodes
>>>    drm: Convert users of drm_of_component_match_add to
>>>      component_match_add_of
>>>
>>>   .../gpu/drm/arm/display/komeda/komeda_drv.c   |  6 ++--
>>>   drivers/gpu/drm/arm/hdlcd_drv.c               |  9 +-----
>>>   drivers/gpu/drm/arm/malidp_drv.c              | 11 +------
>>>   drivers/gpu/drm/armada/armada_drv.c           | 10 ++++---
>>>   drivers/gpu/drm/drm_of.c                      | 29 +++----------------
>>>   drivers/gpu/drm/etnaviv/etnaviv_drv.c         |  4 +--
>>>   .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   |  3 +-
>>>   drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  3 +-
>>>   drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  4 +--
>>>   drivers/gpu/drm/msm/msm_drv.c                 | 14 ++++-----
>>>   drivers/gpu/drm/sti/sti_drv.c                 |  3 +-
>>>   drivers/gpu/drm/sun4i/sun4i_drv.c             |  3 +-
>>>   drivers/gpu/drm/tilcdc/tilcdc_external.c      | 10 ++-----
>>>   drivers/iommu/mtk_iommu.c                     |  3 +-
>>>   drivers/iommu/mtk_iommu_v1.c                  |  3 +-
>>>   include/drm/drm_of.h                          | 12 --------
>>>   include/linux/component.h                     |  9 ++++++
>>>   sound/soc/codecs/wcd938x.c                    |  6 ++--
>>>   18 files changed, 46 insertions(+), 96 deletions(-)
>>>
>>
>> ping?
>>
>> Should I send a v2 broken up like Mark suggested?
> 
> FWIW you'll need to rebase the IOMMU changes on 6.2-rc1 anyway - mtk_iommu stops using component_match_add_release() at all.
> 
> Thanks,
> Robin.

I am preparing v2 of this series, but I don't see these changes on
drm-next, which seems to have been updated to at least 6.2-rc1. I tried
searching for these changes on lore [1], but I don't see them there
either. Do you have a commit hash/lore link for these changes?

--Sean

[1] https://lore.kernel.org/all/?q=dfn%3Adrivers%2Fiommu%2Fmtk_iommu.c+b%3Acomponent

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

end of thread, other threads:[~2022-12-22 21:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-03 18:22 [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
2022-11-03 18:22 ` [PATCH 1/2] component: Add helper for device nodes Sean Anderson
2022-11-03 18:32   ` Mark Brown
2022-11-03 18:22 ` [PATCH 2/2] drm: Convert users of drm_of_component_match_add to component_match_add_of Sean Anderson
2022-11-07 20:27 ` sarha
2022-12-16 17:08 ` [PATCH 0/2] drm: Add component_match_add_of and convert users of drm_of_component_match_add Sean Anderson
2022-12-16 17:41   ` Robin Murphy
2022-12-22 21:24     ` Sean Anderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).