This commit replaces the utilization of i2c_add/del_adapter() with
devm_i2c_add_adapter() to reduce the amount of boilerplate. Using
devm_i2c_add_adapter() has the advantage of removing the manual
manipulation of the I2C adapter.

Suggested-by: Robert Beckett <bob.beck...@collabora.com>
Signed-off-by: Rodrigo Siqueira <sique...@igalia.com>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 21 ++-----------------
 1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index fadc6098eaee..5a06a82de6d9 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2945,7 +2945,7 @@ static int dm_oem_i2c_hw_init(struct amdgpu_device *adev)
                        return -ENOMEM;
                }
 
-               r = i2c_add_adapter(&oem_i2c->base);
+               r = devm_i2c_add_adapter(adev->dev, &oem_i2c->base);
                if (r) {
                        drm_info(adev_to_drm(adev), "Failed to register oem 
i2c\n");
                        kfree(oem_i2c);
@@ -2957,17 +2957,6 @@ static int dm_oem_i2c_hw_init(struct amdgpu_device *adev)
        return 0;
 }
 
-static void dm_oem_i2c_hw_fini(struct amdgpu_device *adev)
-{
-       struct amdgpu_display_manager *dm = &adev->dm;
-
-       if (dm->oem_i2c) {
-               i2c_del_adapter(&dm->oem_i2c->base);
-               kfree(dm->oem_i2c);
-               dm->oem_i2c = NULL;
-       }
-}
-
 /**
  * dm_hw_init() - Initialize DC device
  * @ip_block: Pointer to the amdgpu_ip_block for this hw instance.
@@ -3018,8 +3007,6 @@ static int dm_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        struct amdgpu_device *adev = ip_block->adev;
 
-       dm_oem_i2c_hw_fini(adev);
-
        amdgpu_dm_hpd_fini(adev);
 
        amdgpu_dm_irq_fini(adev);
@@ -7363,10 +7350,6 @@ static void amdgpu_dm_connector_destroy(struct 
drm_connector *connector)
        drm_dp_cec_unregister_connector(&aconnector->dm_dp_aux.aux);
        drm_connector_unregister(connector);
        drm_connector_cleanup(connector);
-       if (aconnector->i2c) {
-               i2c_del_adapter(&aconnector->i2c->base);
-               kfree(aconnector->i2c);
-       }
        kfree(aconnector->dm_dp_aux.aux.name);
 
        kfree(connector);
@@ -8698,7 +8681,7 @@ static int amdgpu_dm_connector_init(struct 
amdgpu_display_manager *dm,
        }
 
        aconnector->i2c = i2c;
-       res = i2c_add_adapter(&i2c->base);
+       res = devm_i2c_add_adapter(dm->adev->dev, &i2c->base);
 
        if (res) {
                drm_err(adev_to_drm(dm->adev), "Failed to register hw i2c 
%d\n", link->link_index);
-- 
2.50.1

Reply via email to