Reviewed-by: Luben Tuikov <[email protected]>

Regards,
Luben

On 1/27/22 12:23, Alex Deucher wrote:
> Return an error if someone tries to use the i2c bus when the
> SMU is not running.  Otherwise we can end up sending commands
> to the SMU which will either get ignored or could cause other
> issues depending on what state the GPU and SMU are in.
>
> Cc: [email protected]
> Signed-off-by: Alex Deucher <[email protected]>
> ---
>  drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c       | 3 +++
>  drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c         | 3 +++
>  drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 3 +++
>  drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c      | 3 +++
>  4 files changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
> index 2c78d04d5611..bc20d0da4393 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
> @@ -2070,6 +2070,9 @@ static int arcturus_i2c_xfer(struct i2c_adapter 
> *i2c_adap,
>       int i, j, r, c;
>       u16 dir;
>  
> +     if (!adev->pm.dpm_enabled)
> +             return -EBUSY;
> +
>       req = kzalloc(sizeof(*req), GFP_KERNEL);
>       if (!req)
>               return -ENOMEM;
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> index 84834c24a7e9..47a75f9c453e 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> @@ -2754,6 +2754,9 @@ static int navi10_i2c_xfer(struct i2c_adapter *i2c_adap,
>       int i, j, r, c;
>       u16 dir;
>  
> +     if (!adev->pm.dpm_enabled)
> +             return -EBUSY;
> +
>       req = kzalloc(sizeof(*req), GFP_KERNEL);
>       if (!req)
>               return -ENOMEM;
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> index 651fe748e423..bca622ca9af4 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> @@ -3449,6 +3449,9 @@ static int sienna_cichlid_i2c_xfer(struct i2c_adapter 
> *i2c_adap,
>       int i, j, r, c;
>       u16 dir;
>  
> +     if (!adev->pm.dpm_enabled)
> +             return -EBUSY;
> +
>       req = kzalloc(sizeof(*req), GFP_KERNEL);
>       if (!req)
>               return -ENOMEM;
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> index 8c02adbf446a..08415de45e16 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> @@ -1473,6 +1473,9 @@ static int aldebaran_i2c_xfer(struct i2c_adapter 
> *i2c_adap,
>       int i, j, r, c;
>       u16 dir;
>  
> +     if (!adev->pm.dpm_enabled)
> +             return -EBUSY;
> +
>       req = kzalloc(sizeof(*req), GFP_KERNEL);
>       if (!req)
>               return -ENOMEM;

Regards,
-- 
Luben

Reply via email to