]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc: aspeed: Use of_reserved_mem_region_to_resource() for "memory-region"
authorRob Herring (Arm) <robh@kernel.org>
Thu, 3 Jul 2025 18:35:07 +0000 (13:35 -0500)
committerAndrew Jeffery <andrew@codeconstruct.com.au>
Mon, 11 Aug 2025 00:07:53 +0000 (09:37 +0930)
Use the newly added of_reserved_mem_region_to_resource() function to
handle "memory-region" properties.

The error handling is a bit different. "memory-region" is optional, so
failed lookup is not an error. But then an error in
of_address_to_resource() is treated as an error. However, that
distinction is not really important. Either the region is available
and usable or it is not. So now, it is just
of_reserved_mem_region_to_resource() which is checked for an error.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20250703183508.2074735-1-robh@kernel.org
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
drivers/soc/aspeed/aspeed-lpc-ctrl.c
drivers/soc/aspeed/aspeed-p2a-ctrl.c

index ee58151bd69ec95bc91cba885ccba8f387f150b0..b7dbb12bd095bd34c54630bfe47e76efc21df382 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/of_address.h>
+#include <linux/of_reserved_mem.h>
 #include <linux/platform_device.h>
 #include <linux/poll.h>
 #include <linux/regmap.h>
@@ -254,17 +255,8 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)
        dev_set_drvdata(&pdev->dev, lpc_ctrl);
 
        /* If memory-region is described in device tree then store */
-       node = of_parse_phandle(dev->of_node, "memory-region", 0);
-       if (!node) {
-               dev_dbg(dev, "Didn't find reserved memory\n");
-       } else {
-               rc = of_address_to_resource(node, 0, &resm);
-               of_node_put(node);
-               if (rc) {
-                       dev_err(dev, "Couldn't address to resource for reserved memory\n");
-                       return -ENXIO;
-               }
-
+       rc = of_reserved_mem_region_to_resource(dev->of_node, 0, &resm);
+       if (!rc) {
                lpc_ctrl->mem_size = resource_size(&resm);
                lpc_ctrl->mem_base = resm.start;
 
index 6cc943744e12954e09ad64a39c1430b70634bb81..3be2e1b1085bdedeb54457914a8ad0fe41304c60 100644 (file)
@@ -19,7 +19,7 @@
 #include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/of.h>
-#include <linux/of_address.h>
+#include <linux/of_reserved_mem.h>
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/slab.h>
@@ -334,7 +334,6 @@ static int aspeed_p2a_ctrl_probe(struct platform_device *pdev)
        struct aspeed_p2a_ctrl *misc_ctrl;
        struct device *dev;
        struct resource resm;
-       struct device_node *node;
        int rc = 0;
 
        dev = &pdev->dev;
@@ -346,15 +345,8 @@ static int aspeed_p2a_ctrl_probe(struct platform_device *pdev)
        mutex_init(&misc_ctrl->tracking);
 
        /* optional. */
-       node = of_parse_phandle(dev->of_node, "memory-region", 0);
-       if (node) {
-               rc = of_address_to_resource(node, 0, &resm);
-               of_node_put(node);
-               if (rc) {
-                       dev_err(dev, "Couldn't address to resource for reserved memory\n");
-                       return -ENODEV;
-               }
-
+       rc = of_reserved_mem_region_to_resource(dev->of_node, 0, &resm);
+       if (!rc) {
                misc_ctrl->mem_size = resource_size(&resm);
                misc_ctrl->mem_base = resm.start;
        }