[PATCH 09/13] platform: surface: Simplify with of_machine_get_match_data()

Krzysztof Kozlowski posted 13 patches 1 month, 1 week ago
There is a newer version of this series
[PATCH 09/13] platform: surface: Simplify with of_machine_get_match_data()
Posted by Krzysztof Kozlowski 1 month, 1 week ago
Replace open-coded getting root OF node, matching against it and getting
the match data with new of_machine_get_match_data() helper.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

Depends on the first OF patch.
---
 drivers/platform/surface/surface_aggregator_registry.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
index a594d5fcfcfd..78ac3a8fbb73 100644
--- a/drivers/platform/surface/surface_aggregator_registry.c
+++ b/drivers/platform/surface/surface_aggregator_registry.c
@@ -491,24 +491,13 @@ static const struct of_device_id ssam_platform_hub_of_match[] __maybe_unused = {
 static int ssam_platform_hub_probe(struct platform_device *pdev)
 {
 	const struct software_node **nodes;
-	const struct of_device_id *match;
-	struct device_node *fdt_root;
 	struct ssam_controller *ctrl;
 	struct fwnode_handle *root;
 	int status;
 
 	nodes = (const struct software_node **)acpi_device_get_match_data(&pdev->dev);
 	if (!nodes) {
-		fdt_root = of_find_node_by_path("/");
-		if (!fdt_root)
-			return -ENODEV;
-
-		match = of_match_node(ssam_platform_hub_of_match, fdt_root);
-		of_node_put(fdt_root);
-		if (!match)
-			return -ENODEV;
-
-		nodes = (const struct software_node **)match->data;
+		nodes = (const struct software_node **)of_machine_get_match_data(ssam_platform_hub_of_match);
 		if (!nodes)
 			return -ENODEV;
 	}

-- 
2.48.1
Re: [PATCH 09/13] platform: surface: Simplify with of_machine_get_match_data()
Posted by Ilpo Järvinen 1 month, 1 week ago
On Thu, 6 Nov 2025, Krzysztof Kozlowski wrote:

Please change the prefixes to:

platform/surface: aggregator_registry: ...

Once that is changed,

Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

-- 
 i.

> Replace open-coded getting root OF node, matching against it and getting
> the match data with new of_machine_get_match_data() helper.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
> 
> Depends on the first OF patch.
> ---
>  drivers/platform/surface/surface_aggregator_registry.c | 13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)
> 
> diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
> index a594d5fcfcfd..78ac3a8fbb73 100644
> --- a/drivers/platform/surface/surface_aggregator_registry.c
> +++ b/drivers/platform/surface/surface_aggregator_registry.c
> @@ -491,24 +491,13 @@ static const struct of_device_id ssam_platform_hub_of_match[] __maybe_unused = {
>  static int ssam_platform_hub_probe(struct platform_device *pdev)
>  {
>  	const struct software_node **nodes;
> -	const struct of_device_id *match;
> -	struct device_node *fdt_root;
>  	struct ssam_controller *ctrl;
>  	struct fwnode_handle *root;
>  	int status;
>  
>  	nodes = (const struct software_node **)acpi_device_get_match_data(&pdev->dev);
>  	if (!nodes) {
> -		fdt_root = of_find_node_by_path("/");
> -		if (!fdt_root)
> -			return -ENODEV;
> -
> -		match = of_match_node(ssam_platform_hub_of_match, fdt_root);
> -		of_node_put(fdt_root);
> -		if (!match)
> -			return -ENODEV;
> -
> -		nodes = (const struct software_node **)match->data;
> +		nodes = (const struct software_node **)of_machine_get_match_data(ssam_platform_hub_of_match);
>  		if (!nodes)
>  			return -ENODEV;
>  	}
> 
>