提交 846ae41a 编写于 作者: M Markus Trippelsdorf 提交者: Alex Deucher

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: NMarkus Trippelsdorf <markus@trippelsdorf.de>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 b1880258
...@@ -506,6 +506,15 @@ static const struct file_operations radeon_driver_kms_fops = { ...@@ -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 = { ...@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册