From: Markus Trippelsdorf Date: Wed, 23 Oct 2013 21:07:30 +0000 (-0400) Subject: drm/radeon: Implement radeon_pci_shutdown X-Git-Tag: v4.0~2657^2~151^2~21 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=846ae41ae99d314bf2a02784152208a6ddf7eddc;p=platform%2Fkernel%2Flinux-amlogic.git 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 Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 9902ac7..dfd4149 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -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)