]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amdgpu/amdgpu_i2c: Use devm_i2c_add_adapter instead of i2c_add_adapter
authorRodrigo Siqueira <siqueira@igalia.com>
Wed, 10 Sep 2025 17:39:35 +0000 (11:39 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 16 Sep 2025 21:47:22 +0000 (17:47 -0400)
This commit replaces i2c_add_adapter() with devm_i2c_add_adapter() and
removes part of the cleanup logic since the new function handles the i2c
removal.

Signed-off-by: Rodrigo Siqueira <siqueira@igalia.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c

index 57101d24422f2bb90e800dd3af6457a1fb8e963f..9cb72f0c527732508bd7d9f7688b9af38babc9b4 100644 (file)
@@ -184,7 +184,7 @@ struct amdgpu_i2c_chan *amdgpu_i2c_create(struct drm_device *dev,
                snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
                         "AMDGPU i2c hw bus %s", name);
                i2c->adapter.algo = &amdgpu_atombios_i2c_algo;
-               ret = i2c_add_adapter(&i2c->adapter);
+               ret = devm_i2c_add_adapter(dev->dev, &i2c->adapter);
                if (ret)
                        goto out_free;
        } else {
@@ -215,15 +215,6 @@ out_free:
 
 }
 
-void amdgpu_i2c_destroy(struct amdgpu_i2c_chan *i2c)
-{
-       if (!i2c)
-               return;
-       WARN_ON(i2c->has_aux);
-       i2c_del_adapter(&i2c->adapter);
-       kfree(i2c);
-}
-
 void amdgpu_i2c_init(struct amdgpu_device *adev)
 {
        if (!adev->is_atom_fw) {
@@ -248,12 +239,9 @@ void amdgpu_i2c_fini(struct amdgpu_device *adev)
 {
        int i;
 
-       for (i = 0; i < AMDGPU_MAX_I2C_BUS; i++) {
-               if (adev->i2c_bus[i]) {
-                       amdgpu_i2c_destroy(adev->i2c_bus[i]);
+       for (i = 0; i < AMDGPU_MAX_I2C_BUS; i++)
+               if (adev->i2c_bus[i])
                        adev->i2c_bus[i] = NULL;
-               }
-       }
 }
 
 /* looks up bus based on id */