Reviewed-by: Luben Tuikov <luben.tuikov@xxxxxxx> 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@xxxxxxx > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > 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