drm/radeon: Implement radeon_pci_shutdown
Currently radeon devices are not properly shutdown during kexec. This causes a varity of issues, e.g. dpm initialization failures. Fix this by implementing a radeon_pci_shutdown function, that unloads the driver cleanly. Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
b188025888
commit
846ae41ae9
@@ -506,6 +506,15 @@ static const struct file_operations radeon_driver_kms_fops = {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
radeon_pci_shutdown(struct pci_dev *pdev)
|
||||||
|
{
|
||||||
|
struct drm_device *dev = pci_get_drvdata(pdev);
|
||||||
|
|
||||||
|
radeon_driver_unload_kms(dev);
|
||||||
|
}
|
||||||
|
|
||||||
static struct drm_driver kms_driver = {
|
static struct drm_driver kms_driver = {
|
||||||
.driver_features =
|
.driver_features =
|
||||||
DRIVER_USE_AGP |
|
DRIVER_USE_AGP |
|
||||||
@@ -575,6 +584,7 @@ static struct pci_driver radeon_kms_pci_driver = {
|
|||||||
.probe = radeon_pci_probe,
|
.probe = radeon_pci_probe,
|
||||||
.remove = radeon_pci_remove,
|
.remove = radeon_pci_remove,
|
||||||
.driver.pm = &radeon_pm_ops,
|
.driver.pm = &radeon_pm_ops,
|
||||||
|
.shutdown = radeon_pci_shutdown,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init radeon_init(void)
|
static int __init radeon_init(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user