Commit d02f5aab authored by Kyle Mahlkuch's avatar Kyle Mahlkuch Committed by Alex Deucher
Browse files

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: default avatarKyle Mahlkuch <kmahlkuc@linux.vnet.ibm.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b64919a2
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -378,11 +378,25 @@ radeon_pci_remove(struct pci_dev *pdev)
static void
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
	 * torn down properly on reboot/shutdown
	 */
	if (radeon_device_is_virtual())
		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)