[PATCH 11/12] soc: versatile: realview: Use devm_soc_device_register() helper

From: Andrew Davis

Date: Wed Nov 11 2026 - 13:09:23 EST


Use the device lifecycle managed register function. This helps prevent
mistakes like unregistering out of order in cleanup functions and
forgetting to unregister on error paths.

Signed-off-by: Andrew Davis <afd@xxxxxx>
---
drivers/soc/versatile/soc-realview.c | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/soc/versatile/soc-realview.c b/drivers/soc/versatile/soc-realview.c
index addb8eb32f0d9..a0dc37ff9b376 100644
--- a/drivers/soc/versatile/soc-realview.c
+++ b/drivers/soc/versatile/soc-realview.c
@@ -82,13 +82,6 @@ static struct attribute *realview_attrs[] = {

ATTRIBUTE_GROUPS(realview);

-static void realview_soc_socdev_release(void *data)
-{
- struct soc_device *soc_dev = data;
-
- soc_device_unregister(soc_dev);
-}
-
static int realview_soc_probe(struct platform_device *pdev)
{
struct regmap *syscon_regmap;
@@ -113,15 +106,10 @@ static int realview_soc_probe(struct platform_device *pdev)
soc_dev_attr->machine = "RealView";
soc_dev_attr->family = "Versatile";
soc_dev_attr->custom_attr_group = realview_groups[0];
- soc_dev = soc_device_register(soc_dev_attr);
+ soc_dev = devm_soc_device_register(&pdev->dev, soc_dev_attr);
if (IS_ERR(soc_dev))
return -ENODEV;

- ret = devm_add_action_or_reset(&pdev->dev, realview_soc_socdev_release,
- soc_dev);
- if (ret)
- return ret;
-
ret = regmap_read(syscon_regmap, REALVIEW_SYS_ID_OFFSET,
&realview_coreid);
if (ret)
--
2.43.0