drm/amdgpu: Exclude PCI reset method for now.
authorAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Thu, 24 Feb 2022 18:00:28 +0000 (13:00 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 24 Feb 2022 22:25:20 +0000 (17:25 -0500)
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.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

index ecf8c307baf69eddb3573475d6ec8b7e0ba09e85..6113ddc765a744ff6609a39a4ac3dc1a98a267f2 100644 (file)
@@ -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 < -1 || amdgpu_reset_method > 4) {
+               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);
index 312d15d5df95800d94faa413701552162fb9cf5a..415ecf8b2e05b7673431f66e82d834b7f8577774 100644 (file)
@@ -837,9 +837,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);
 
 /**