All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/amdgpu/smu: rework i2c adpater registration
@ 2020-07-30 19:24 Alex Deucher
  2020-08-04 16:57 ` Alex Deucher
  0 siblings, 1 reply; 3+ messages in thread
From: Alex Deucher @ 2020-07-30 19:24 UTC (permalink / raw)
  To: amd-gfx; +Cc: Alex Deucher

The i2c init/fini functions just register the i2c adapter.
There is no need to call them during hw init/fini.  They only
need to be called once per driver init/fini.  The previous
behavior broke runtime pm because we unregistered the i2c
adapter during suspend.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
 drivers/gpu/drm/amd/powerplay/amdgpu_smu.c         | 12 ++++++------
 drivers/gpu/drm/amd/powerplay/arcturus_ppt.c       | 14 --------------
 drivers/gpu/drm/amd/powerplay/navi10_ppt.c         | 14 --------------
 drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c | 14 --------------
 4 files changed, 6 insertions(+), 48 deletions(-)

diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
index 55463e7a11e2..d03b4852ed5f 100644
--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
@@ -579,6 +579,10 @@ static int smu_smc_table_sw_init(struct smu_context *smu)
 	if (ret)
 		return ret;
 
+	ret = smu_i2c_init(smu, &smu->adev->pm.smu_i2c);
+	if (ret)
+		return ret;
+
 	return 0;
 }
 
@@ -586,6 +590,8 @@ static int smu_smc_table_sw_fini(struct smu_context *smu)
 {
 	int ret;
 
+	smu_i2c_fini(smu, &smu->adev->pm.smu_i2c);
+
 	ret = smu_free_memory_pool(smu);
 	if (ret)
 		return ret;
@@ -845,10 +851,6 @@ static int smu_smc_hw_setup(struct smu_context *smu)
 		return ret;
 	}
 
-	ret = smu_i2c_init(smu, &adev->pm.smu_i2c);
-	if (ret)
-		return ret;
-
 	ret = smu_disable_umc_cdr_12gbps_workaround(smu);
 	if (ret) {
 		dev_err(adev->dev, "Workaround failed to disable UMC CDR feature on 12Gbps SKU!\n");
@@ -1047,8 +1049,6 @@ static int smu_smc_hw_cleanup(struct smu_context *smu)
 	struct amdgpu_device *adev = smu->adev;
 	int ret = 0;
 
-	smu_i2c_fini(smu, &adev->pm.smu_i2c);
-
 	cancel_work_sync(&smu->throttling_logging_work);
 
 	ret = smu_disable_thermal_alert(smu);
diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
index f13979687b9e..0147a5b9b06d 100644
--- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
@@ -2080,22 +2080,11 @@ static const struct i2c_algorithm arcturus_i2c_algo = {
 	.functionality = arcturus_i2c_func,
 };
 
-static bool arcturus_i2c_adapter_is_added(struct i2c_adapter *control)
-{
-	struct amdgpu_device *adev = to_amdgpu_device(control);
-
-	return control->dev.parent == &adev->pdev->dev;
-}
-
 static int arcturus_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
 {
 	struct amdgpu_device *adev = to_amdgpu_device(control);
 	int res;
 
-	/* smu_i2c_eeprom_init may be called twice in sriov */
-	if (arcturus_i2c_adapter_is_added(control))
-		return 0;
-
 	control->owner = THIS_MODULE;
 	control->class = I2C_CLASS_SPD;
 	control->dev.parent = &adev->pdev->dev;
@@ -2111,9 +2100,6 @@ static int arcturus_i2c_control_init(struct smu_context *smu, struct i2c_adapter
 
 static void arcturus_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
 {
-	if (!arcturus_i2c_adapter_is_added(control))
-		return;
-
 	i2c_del_adapter(control);
 }
 
diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
index 6aaf483858a0..c33bdc6747f2 100644
--- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
@@ -2457,22 +2457,11 @@ static const struct i2c_algorithm navi10_i2c_algo = {
 	.functionality = navi10_i2c_func,
 };
 
-static bool navi10_i2c_adapter_is_added(struct i2c_adapter *control)
-{
-	struct amdgpu_device *adev = to_amdgpu_device(control);
-
-	return control->dev.parent == &adev->pdev->dev;
-}
-
 static int navi10_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
 {
 	struct amdgpu_device *adev = to_amdgpu_device(control);
 	int res;
 
-	/* smu_i2c_eeprom_init may be called twice in sriov */
-	if (navi10_i2c_adapter_is_added(control))
-		return 0;
-
 	control->owner = THIS_MODULE;
 	control->class = I2C_CLASS_SPD;
 	control->dev.parent = &adev->pdev->dev;
@@ -2488,9 +2477,6 @@ static int navi10_i2c_control_init(struct smu_context *smu, struct i2c_adapter *
 
 static void navi10_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
 {
-	if (!navi10_i2c_adapter_is_added(control))
-		return;
-
 	i2c_del_adapter(control);
 }
 
diff --git a/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
index f64a1be94cb8..f373e2d0d31c 100644
--- a/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
@@ -2630,22 +2630,11 @@ static const struct i2c_algorithm sienna_cichlid_i2c_algo = {
 	.functionality = sienna_cichlid_i2c_func,
 };
 
-static bool sienna_cichlid_i2c_adapter_is_added(struct i2c_adapter *control)
-{
-	struct amdgpu_device *adev = to_amdgpu_device(control);
-
-	return control->dev.parent == &adev->pdev->dev;
-}
-
 static int sienna_cichlid_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
 {
 	struct amdgpu_device *adev = to_amdgpu_device(control);
 	int res;
 
-	/* smu_i2c_eeprom_init may be called twice in sriov */
-	if (sienna_cichlid_i2c_adapter_is_added(control))
-		return 0;
-
 	control->owner = THIS_MODULE;
 	control->class = I2C_CLASS_SPD;
 	control->dev.parent = &adev->pdev->dev;
@@ -2661,9 +2650,6 @@ static int sienna_cichlid_i2c_control_init(struct smu_context *smu, struct i2c_a
 
 static void sienna_cichlid_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
 {
-	if (!sienna_cichlid_i2c_adapter_is_added(control))
-		return;
-
 	i2c_del_adapter(control);
 }
 
-- 
2.25.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/amdgpu/smu: rework i2c adpater registration
  2020-07-30 19:24 [PATCH] drm/amdgpu/smu: rework i2c adpater registration Alex Deucher
@ 2020-08-04 16:57 ` Alex Deucher
  2020-08-04 17:35   ` Wang, Kevin(Yang)
  0 siblings, 1 reply; 3+ messages in thread
From: Alex Deucher @ 2020-08-04 16:57 UTC (permalink / raw)
  To: amd-gfx list; +Cc: Alex Deucher

Ping?


On Thu, Jul 30, 2020 at 3:24 PM Alex Deucher <alexdeucher@gmail.com> wrote:
>
> The i2c init/fini functions just register the i2c adapter.
> There is no need to call them during hw init/fini.  They only
> need to be called once per driver init/fini.  The previous
> behavior broke runtime pm because we unregistered the i2c
> adapter during suspend.
>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
> ---
>  drivers/gpu/drm/amd/powerplay/amdgpu_smu.c         | 12 ++++++------
>  drivers/gpu/drm/amd/powerplay/arcturus_ppt.c       | 14 --------------
>  drivers/gpu/drm/amd/powerplay/navi10_ppt.c         | 14 --------------
>  drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c | 14 --------------
>  4 files changed, 6 insertions(+), 48 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> index 55463e7a11e2..d03b4852ed5f 100644
> --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> @@ -579,6 +579,10 @@ static int smu_smc_table_sw_init(struct smu_context *smu)
>         if (ret)
>                 return ret;
>
> +       ret = smu_i2c_init(smu, &smu->adev->pm.smu_i2c);
> +       if (ret)
> +               return ret;
> +
>         return 0;
>  }
>
> @@ -586,6 +590,8 @@ static int smu_smc_table_sw_fini(struct smu_context *smu)
>  {
>         int ret;
>
> +       smu_i2c_fini(smu, &smu->adev->pm.smu_i2c);
> +
>         ret = smu_free_memory_pool(smu);
>         if (ret)
>                 return ret;
> @@ -845,10 +851,6 @@ static int smu_smc_hw_setup(struct smu_context *smu)
>                 return ret;
>         }
>
> -       ret = smu_i2c_init(smu, &adev->pm.smu_i2c);
> -       if (ret)
> -               return ret;
> -
>         ret = smu_disable_umc_cdr_12gbps_workaround(smu);
>         if (ret) {
>                 dev_err(adev->dev, "Workaround failed to disable UMC CDR feature on 12Gbps SKU!\n");
> @@ -1047,8 +1049,6 @@ static int smu_smc_hw_cleanup(struct smu_context *smu)
>         struct amdgpu_device *adev = smu->adev;
>         int ret = 0;
>
> -       smu_i2c_fini(smu, &adev->pm.smu_i2c);
> -
>         cancel_work_sync(&smu->throttling_logging_work);
>
>         ret = smu_disable_thermal_alert(smu);
> diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> index f13979687b9e..0147a5b9b06d 100644
> --- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> @@ -2080,22 +2080,11 @@ static const struct i2c_algorithm arcturus_i2c_algo = {
>         .functionality = arcturus_i2c_func,
>  };
>
> -static bool arcturus_i2c_adapter_is_added(struct i2c_adapter *control)
> -{
> -       struct amdgpu_device *adev = to_amdgpu_device(control);
> -
> -       return control->dev.parent == &adev->pdev->dev;
> -}
> -
>  static int arcturus_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
>  {
>         struct amdgpu_device *adev = to_amdgpu_device(control);
>         int res;
>
> -       /* smu_i2c_eeprom_init may be called twice in sriov */
> -       if (arcturus_i2c_adapter_is_added(control))
> -               return 0;
> -
>         control->owner = THIS_MODULE;
>         control->class = I2C_CLASS_SPD;
>         control->dev.parent = &adev->pdev->dev;
> @@ -2111,9 +2100,6 @@ static int arcturus_i2c_control_init(struct smu_context *smu, struct i2c_adapter
>
>  static void arcturus_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
>  {
> -       if (!arcturus_i2c_adapter_is_added(control))
> -               return;
> -
>         i2c_del_adapter(control);
>  }
>
> diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
> index 6aaf483858a0..c33bdc6747f2 100644
> --- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
> @@ -2457,22 +2457,11 @@ static const struct i2c_algorithm navi10_i2c_algo = {
>         .functionality = navi10_i2c_func,
>  };
>
> -static bool navi10_i2c_adapter_is_added(struct i2c_adapter *control)
> -{
> -       struct amdgpu_device *adev = to_amdgpu_device(control);
> -
> -       return control->dev.parent == &adev->pdev->dev;
> -}
> -
>  static int navi10_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
>  {
>         struct amdgpu_device *adev = to_amdgpu_device(control);
>         int res;
>
> -       /* smu_i2c_eeprom_init may be called twice in sriov */
> -       if (navi10_i2c_adapter_is_added(control))
> -               return 0;
> -
>         control->owner = THIS_MODULE;
>         control->class = I2C_CLASS_SPD;
>         control->dev.parent = &adev->pdev->dev;
> @@ -2488,9 +2477,6 @@ static int navi10_i2c_control_init(struct smu_context *smu, struct i2c_adapter *
>
>  static void navi10_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
>  {
> -       if (!navi10_i2c_adapter_is_added(control))
> -               return;
> -
>         i2c_del_adapter(control);
>  }
>
> diff --git a/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
> index f64a1be94cb8..f373e2d0d31c 100644
> --- a/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
> @@ -2630,22 +2630,11 @@ static const struct i2c_algorithm sienna_cichlid_i2c_algo = {
>         .functionality = sienna_cichlid_i2c_func,
>  };
>
> -static bool sienna_cichlid_i2c_adapter_is_added(struct i2c_adapter *control)
> -{
> -       struct amdgpu_device *adev = to_amdgpu_device(control);
> -
> -       return control->dev.parent == &adev->pdev->dev;
> -}
> -
>  static int sienna_cichlid_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
>  {
>         struct amdgpu_device *adev = to_amdgpu_device(control);
>         int res;
>
> -       /* smu_i2c_eeprom_init may be called twice in sriov */
> -       if (sienna_cichlid_i2c_adapter_is_added(control))
> -               return 0;
> -
>         control->owner = THIS_MODULE;
>         control->class = I2C_CLASS_SPD;
>         control->dev.parent = &adev->pdev->dev;
> @@ -2661,9 +2650,6 @@ static int sienna_cichlid_i2c_control_init(struct smu_context *smu, struct i2c_a
>
>  static void sienna_cichlid_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
>  {
> -       if (!sienna_cichlid_i2c_adapter_is_added(control))
> -               return;
> -
>         i2c_del_adapter(control);
>  }
>
> --
> 2.25.4
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/amdgpu/smu: rework i2c adpater registration
  2020-08-04 16:57 ` Alex Deucher
@ 2020-08-04 17:35   ` Wang, Kevin(Yang)
  0 siblings, 0 replies; 3+ messages in thread
From: Wang, Kevin(Yang) @ 2020-08-04 17:35 UTC (permalink / raw)
  To: Alex Deucher; +Cc: Deucher, Alexander, amd-gfx list

Reviewed-By: Kevin Wang <kevin1.wang@amd.com>

Best Regards
Kevin

> 在 2020年8月5日,上午12:57,Alex Deucher <alexdeucher@gmail.com> 写道:
> 
> Ping?
> 
> 
>> On Thu, Jul 30, 2020 at 3:24 PM Alex Deucher <alexdeucher@gmail.com> wrote:
>> 
>> The i2c init/fini functions just register the i2c adapter.
>> There is no need to call them during hw init/fini.  They only
>> need to be called once per driver init/fini.  The previous
>> behavior broke runtime pm because we unregistered the i2c
>> adapter during suspend.
>> 
>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
>> ---
>> drivers/gpu/drm/amd/powerplay/amdgpu_smu.c         | 12 ++++++------
>> drivers/gpu/drm/amd/powerplay/arcturus_ppt.c       | 14 --------------
>> drivers/gpu/drm/amd/powerplay/navi10_ppt.c         | 14 --------------
>> drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c | 14 --------------
>> 4 files changed, 6 insertions(+), 48 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
>> index 55463e7a11e2..d03b4852ed5f 100644
>> --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
>> +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
>> @@ -579,6 +579,10 @@ static int smu_smc_table_sw_init(struct smu_context *smu)
>>        if (ret)
>>                return ret;
>> 
>> +       ret = smu_i2c_init(smu, &smu->adev->pm.smu_i2c);
>> +       if (ret)
>> +               return ret;
>> +
>>        return 0;
>> }
>> 
>> @@ -586,6 +590,8 @@ static int smu_smc_table_sw_fini(struct smu_context *smu)
>> {
>>        int ret;
>> 
>> +       smu_i2c_fini(smu, &smu->adev->pm.smu_i2c);
>> +
>>        ret = smu_free_memory_pool(smu);
>>        if (ret)
>>                return ret;
>> @@ -845,10 +851,6 @@ static int smu_smc_hw_setup(struct smu_context *smu)
>>                return ret;
>>        }
>> 
>> -       ret = smu_i2c_init(smu, &adev->pm.smu_i2c);
>> -       if (ret)
>> -               return ret;
>> -
>>        ret = smu_disable_umc_cdr_12gbps_workaround(smu);
>>        if (ret) {
>>                dev_err(adev->dev, "Workaround failed to disable UMC CDR feature on 12Gbps SKU!\n");
>> @@ -1047,8 +1049,6 @@ static int smu_smc_hw_cleanup(struct smu_context *smu)
>>        struct amdgpu_device *adev = smu->adev;
>>        int ret = 0;
>> 
>> -       smu_i2c_fini(smu, &adev->pm.smu_i2c);
>> -
>>        cancel_work_sync(&smu->throttling_logging_work);
>> 
>>        ret = smu_disable_thermal_alert(smu);
>> diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
>> index f13979687b9e..0147a5b9b06d 100644
>> --- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
>> +++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
>> @@ -2080,22 +2080,11 @@ static const struct i2c_algorithm arcturus_i2c_algo = {
>>        .functionality = arcturus_i2c_func,
>> };
>> 
>> -static bool arcturus_i2c_adapter_is_added(struct i2c_adapter *control)
>> -{
>> -       struct amdgpu_device *adev = to_amdgpu_device(control);
>> -
>> -       return control->dev.parent == &adev->pdev->dev;
>> -}
>> -
>> static int arcturus_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
>> {
>>        struct amdgpu_device *adev = to_amdgpu_device(control);
>>        int res;
>> 
>> -       /* smu_i2c_eeprom_init may be called twice in sriov */
>> -       if (arcturus_i2c_adapter_is_added(control))
>> -               return 0;
>> -
>>        control->owner = THIS_MODULE;
>>        control->class = I2C_CLASS_SPD;
>>        control->dev.parent = &adev->pdev->dev;
>> @@ -2111,9 +2100,6 @@ static int arcturus_i2c_control_init(struct smu_context *smu, struct i2c_adapter
>> 
>> static void arcturus_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
>> {
>> -       if (!arcturus_i2c_adapter_is_added(control))
>> -               return;
>> -
>>        i2c_del_adapter(control);
>> }
>> 
>> diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
>> index 6aaf483858a0..c33bdc6747f2 100644
>> --- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
>> +++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
>> @@ -2457,22 +2457,11 @@ static const struct i2c_algorithm navi10_i2c_algo = {
>>        .functionality = navi10_i2c_func,
>> };
>> 
>> -static bool navi10_i2c_adapter_is_added(struct i2c_adapter *control)
>> -{
>> -       struct amdgpu_device *adev = to_amdgpu_device(control);
>> -
>> -       return control->dev.parent == &adev->pdev->dev;
>> -}
>> -
>> static int navi10_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
>> {
>>        struct amdgpu_device *adev = to_amdgpu_device(control);
>>        int res;
>> 
>> -       /* smu_i2c_eeprom_init may be called twice in sriov */
>> -       if (navi10_i2c_adapter_is_added(control))
>> -               return 0;
>> -
>>        control->owner = THIS_MODULE;
>>        control->class = I2C_CLASS_SPD;
>>        control->dev.parent = &adev->pdev->dev;
>> @@ -2488,9 +2477,6 @@ static int navi10_i2c_control_init(struct smu_context *smu, struct i2c_adapter *
>> 
>> static void navi10_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
>> {
>> -       if (!navi10_i2c_adapter_is_added(control))
>> -               return;
>> -
>>        i2c_del_adapter(control);
>> }
>> 
>> diff --git a/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
>> index f64a1be94cb8..f373e2d0d31c 100644
>> --- a/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
>> +++ b/drivers/gpu/drm/amd/powerplay/sienna_cichlid_ppt.c
>> @@ -2630,22 +2630,11 @@ static const struct i2c_algorithm sienna_cichlid_i2c_algo = {
>>        .functionality = sienna_cichlid_i2c_func,
>> };
>> 
>> -static bool sienna_cichlid_i2c_adapter_is_added(struct i2c_adapter *control)
>> -{
>> -       struct amdgpu_device *adev = to_amdgpu_device(control);
>> -
>> -       return control->dev.parent == &adev->pdev->dev;
>> -}
>> -
>> static int sienna_cichlid_i2c_control_init(struct smu_context *smu, struct i2c_adapter *control)
>> {
>>        struct amdgpu_device *adev = to_amdgpu_device(control);
>>        int res;
>> 
>> -       /* smu_i2c_eeprom_init may be called twice in sriov */
>> -       if (sienna_cichlid_i2c_adapter_is_added(control))
>> -               return 0;
>> -
>>        control->owner = THIS_MODULE;
>>        control->class = I2C_CLASS_SPD;
>>        control->dev.parent = &adev->pdev->dev;
>> @@ -2661,9 +2650,6 @@ static int sienna_cichlid_i2c_control_init(struct smu_context *smu, struct i2c_a
>> 
>> static void sienna_cichlid_i2c_control_fini(struct smu_context *smu, struct i2c_adapter *control)
>> {
>> -       if (!sienna_cichlid_i2c_adapter_is_added(control))
>> -               return;
>> -
>>        i2c_del_adapter(control);
>> }
>> 
>> --
>> 2.25.4
>> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=02%7C01%7CKevin1.Wang%40amd.com%7Cf307306bc40840c0307008d838978248%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637321570670378196&amp;sdata=E%2FCo%2FythThCr0i1b9Zu7GL0mrWQkdU%2BENuoT4PPeZko%3D&amp;reserved=0
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-08-04 17:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-30 19:24 [PATCH] drm/amdgpu/smu: rework i2c adpater registration Alex Deucher
2020-08-04 16:57 ` Alex Deucher
2020-08-04 17:35   ` Wang, Kevin(Yang)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.