drm/radeon: Implement radeon_pci_shutdown
authorMarkus Trippelsdorf <markus@trippelsdorf.de>
Wed, 23 Oct 2013 21:07:30 +0000 (17:07 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 1 Nov 2013 16:43:20 +0000 (12:43 -0400)
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>
drivers/gpu/drm/radeon/radeon_drv.c

index 9902ac76f683f19c4b06bdc7d68ad06e408db7a6..dfd4149a43b61fc00419a50b61fb859448c9ea7e 100644 (file)
@@ -506,6 +506,15 @@ static const struct file_operations radeon_driver_kms_fops = {
 #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 = {
        .driver_features =
            DRIVER_USE_AGP |
@@ -575,6 +584,7 @@ static struct pci_driver radeon_kms_pci_driver = {
        .probe = radeon_pci_probe,
        .remove = radeon_pci_remove,
        .driver.pm = &radeon_pm_ops,
+       .shutdown = radeon_pci_shutdown,
 };
 
 static int __init radeon_init(void)