On Thu, Feb 24, 2022 at 1:05 PM Andrey Grodzovsky <andrey.grodzovsky@xxxxxxx> wrote: > > According to my investigation of the state of PCI > reset recently it's not working. The reason is > due to the fact the kernel PCI code rejects SBR > when there are more then one PF under same bridge > which we always have (at least AUDIO PF but usually > more) and that because SBR will reset all the PFS > and devices under the same bridge as you and you > cannot assume they support SBR. > Once we anble FLR support we can reenable this option as > FLR is doable on single PF and doens't have this > restriction. > > Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 +++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++-- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index ecf8c307baf6..78cdbe3c4a9c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -1539,6 +1539,11 @@ static int amdgpu_device_check_arguments(struct amdgpu_device *adev) > amdgpu_sched_hw_submission = roundup_pow_of_two(amdgpu_sched_hw_submission); > } > > + if (amdgpu_reset_method > 4) { Validate the other side as well? if (amdgpu_reset_method < -1 || amdgpu_reset_method > 4) { With that fixed: Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > + dev_warn(adev->dev, "invalid option for reset method, reverting to default\n"); > + amdgpu_reset_method = -1; > + } > + > amdgpu_device_check_smu_prv_buffer_size(adev); > > amdgpu_device_check_vm_size(adev); > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index e18356fff710..5a2ecc65951d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -829,9 +829,9 @@ module_param_named(tmz, amdgpu_tmz, int, 0444); > > /** > * DOC: reset_method (int) > - * GPU reset method (-1 = auto (default), 0 = legacy, 1 = mode0, 2 = mode1, 3 = mode2, 4 = baco, 5 = pci) > + * GPU reset method (-1 = auto (default), 0 = legacy, 1 = mode0, 2 = mode1, 3 = mode2, 4 = baco) > */ > -MODULE_PARM_DESC(reset_method, "GPU reset method (-1 = auto (default), 0 = legacy, 1 = mode0, 2 = mode1, 3 = mode2, 4 = baco/bamaco, 5 = pci)"); > +MODULE_PARM_DESC(reset_method, "GPU reset method (-1 = auto (default), 0 = legacy, 1 = mode0, 2 = mode1, 3 = mode2, 4 = baco/bamaco)"); > module_param_named(reset_method, amdgpu_reset_method, int, 0444); > > /** > -- > 2.25.1 >