drm/radeon: implement pci config reset for evergreen/cayman (v2)
pci config reset is a low level reset that resets the entire chip from the bus interface. It can be more reliable if soft reset fails. v2: put behind module parameter Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -174,6 +174,7 @@ extern void evergreen_pcie_gen2_enable(struct radeon_device *rdev);
|
||||
extern void evergreen_program_aspm(struct radeon_device *rdev);
|
||||
extern void sumo_rlc_fini(struct radeon_device *rdev);
|
||||
extern int sumo_rlc_init(struct radeon_device *rdev);
|
||||
extern void evergreen_gpu_pci_config_reset(struct radeon_device *rdev);
|
||||
|
||||
/* Firmware Names */
|
||||
MODULE_FIRMWARE("radeon/BARTS_pfp.bin");
|
||||
@@ -1878,8 +1879,10 @@ int cayman_asic_reset(struct radeon_device *rdev)
|
||||
|
||||
reset_mask = cayman_gpu_check_soft_reset(rdev);
|
||||
|
||||
if (!reset_mask)
|
||||
r600_set_bios_scratch_engine_hung(rdev, false);
|
||||
if (reset_mask)
|
||||
evergreen_gpu_pci_config_reset(rdev);
|
||||
|
||||
r600_set_bios_scratch_engine_hung(rdev, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user