drm/radeon: Fix EEH during kexec
During kexec some adapters hit an EEH since they are not properly shut down in the radeon_pci_shutdown() function. Adding radeon_suspend_kms() fixes this issue. Enabled only on PPC because this patch causes issues on some other boards. Signed-off-by: Kyle Mahlkuch <kmahlkuc@linux.vnet.ibm.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
b64919a236
commit
d02f5aab06
@@ -378,11 +378,25 @@ radeon_pci_remove(struct pci_dev *pdev)
|
|||||||
static void
|
static void
|
||||||
radeon_pci_shutdown(struct pci_dev *pdev)
|
radeon_pci_shutdown(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_PPC64
|
||||||
|
struct drm_device *ddev = pci_get_drvdata(pdev);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* if we are running in a VM, make sure the device
|
/* if we are running in a VM, make sure the device
|
||||||
* torn down properly on reboot/shutdown
|
* torn down properly on reboot/shutdown
|
||||||
*/
|
*/
|
||||||
if (radeon_device_is_virtual())
|
if (radeon_device_is_virtual())
|
||||||
radeon_pci_remove(pdev);
|
radeon_pci_remove(pdev);
|
||||||
|
|
||||||
|
#ifdef CONFIG_PPC64
|
||||||
|
/* Some adapters need to be suspended before a
|
||||||
|
* shutdown occurs in order to prevent an error
|
||||||
|
* during kexec.
|
||||||
|
* Make this power specific becauase it breaks
|
||||||
|
* some non-power boards.
|
||||||
|
*/
|
||||||
|
radeon_suspend_kms(ddev, true, true, false);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static int radeon_pmops_suspend(struct device *dev)
|
static int radeon_pmops_suspend(struct device *dev)
|
||||||
|
|||||||
Reference in New Issue
Block a user