[PATCH] drm/radeon : Use devm_i2c_add_adapter instead of i2c_add_adapter

Erick Karanja posted 1 patch 1 month, 4 weeks ago
drivers/gpu/drm/radeon/radeon_i2c.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
[PATCH] drm/radeon : Use devm_i2c_add_adapter instead of i2c_add_adapter
Posted by Erick Karanja 1 month, 4 weeks ago
Replace i2c_add_adapter() with devm_i2c_add_adapter() and remove all
associated cleanup, as devm_i2c_add_adapter() handles adapter teardown
automatically.

Signed-off-by: Erick Karanja <karanja99erick@gmail.com>
---
 drivers/gpu/drm/radeon/radeon_i2c.c | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_i2c.c b/drivers/gpu/drm/radeon/radeon_i2c.c
index 1f16619ed06e..f3ba4187092c 100644
--- a/drivers/gpu/drm/radeon/radeon_i2c.c
+++ b/drivers/gpu/drm/radeon/radeon_i2c.c
@@ -931,7 +931,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
 		snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
 			 "Radeon i2c hw bus %s", name);
 		i2c->adapter.algo = &radeon_i2c_algo;
-		ret = i2c_add_adapter(&i2c->adapter);
+		ret = devm_i2c_add_adapter(dev->dev, &i2c->adapter);
 		if (ret)
 			goto out_free;
 	} else if (rec->hw_capable &&
@@ -972,15 +972,6 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
 
 }
 
-void radeon_i2c_destroy(struct radeon_i2c_chan *i2c)
-{
-	if (!i2c)
-		return;
-	WARN_ON(i2c->has_aux);
-	i2c_del_adapter(&i2c->adapter);
-	kfree(i2c);
-}
-
 /* Add the default buses */
 void radeon_i2c_init(struct radeon_device *rdev)
 {
@@ -999,10 +990,8 @@ void radeon_i2c_fini(struct radeon_device *rdev)
 	int i;
 
 	for (i = 0; i < RADEON_MAX_I2C_BUS; i++) {
-		if (rdev->i2c_bus[i]) {
-			radeon_i2c_destroy(rdev->i2c_bus[i]);
+		if (rdev->i2c_bus[i])
 			rdev->i2c_bus[i] = NULL;
-		}
 	}
 }
 
-- 
2.43.0
Re: [PATCH] drm/radeon : Use devm_i2c_add_adapter instead of i2c_add_adapter
Posted by Alex Deucher 1 month, 3 weeks ago
Applied.  Thanks!

On Thu, Dec 11, 2025 at 3:59 AM Erick Karanja <karanja99erick@gmail.com> wrote:
>
> Replace i2c_add_adapter() with devm_i2c_add_adapter() and remove all
> associated cleanup, as devm_i2c_add_adapter() handles adapter teardown
> automatically.
>
> Signed-off-by: Erick Karanja <karanja99erick@gmail.com>
> ---
>  drivers/gpu/drm/radeon/radeon_i2c.c | 15 ++-------------
>  1 file changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_i2c.c b/drivers/gpu/drm/radeon/radeon_i2c.c
> index 1f16619ed06e..f3ba4187092c 100644
> --- a/drivers/gpu/drm/radeon/radeon_i2c.c
> +++ b/drivers/gpu/drm/radeon/radeon_i2c.c
> @@ -931,7 +931,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
>                 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
>                          "Radeon i2c hw bus %s", name);
>                 i2c->adapter.algo = &radeon_i2c_algo;
> -               ret = i2c_add_adapter(&i2c->adapter);
> +               ret = devm_i2c_add_adapter(dev->dev, &i2c->adapter);
>                 if (ret)
>                         goto out_free;
>         } else if (rec->hw_capable &&
> @@ -972,15 +972,6 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
>
>  }
>
> -void radeon_i2c_destroy(struct radeon_i2c_chan *i2c)
> -{
> -       if (!i2c)
> -               return;
> -       WARN_ON(i2c->has_aux);
> -       i2c_del_adapter(&i2c->adapter);
> -       kfree(i2c);
> -}
> -
>  /* Add the default buses */
>  void radeon_i2c_init(struct radeon_device *rdev)
>  {
> @@ -999,10 +990,8 @@ void radeon_i2c_fini(struct radeon_device *rdev)
>         int i;
>
>         for (i = 0; i < RADEON_MAX_I2C_BUS; i++) {
> -               if (rdev->i2c_bus[i]) {
> -                       radeon_i2c_destroy(rdev->i2c_bus[i]);
> +               if (rdev->i2c_bus[i])
>                         rdev->i2c_bus[i] = NULL;
> -               }
>         }
>  }
>
> --
> 2.43.0
>