[PATCH] drm/amdgpu/swsmu/i2c: return an error if the SMU is not running
Luben Tuikov
luben.tuikov at amd.com
Thu Jan 27 17:26:13 UTC 2022
Reviewed-by: Luben Tuikov <luben.tuikov at amd.com>
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: Luben.Tuikov at amd.com
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> 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
More information about the amd-gfx
mailing list