@@ -38,6 +38,7 @@
#include <linux/pci.h>
#include <drm/drm_aperture.h>
+#include <drm/drm_crtc_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_file.h>
#include <drm/drm_gem.h>
@@ -330,7 +331,9 @@ radeon_pci_remove(struct pci_dev *pdev)
{
struct drm_device *dev = pci_get_drvdata(pdev);
- drm_put_dev(dev);
+ drm_dev_unregister(dev);
+ drm_helper_force_disable_all(dev);
+ drm_dev_put(dev);
}
static void
@@ -341,6 +344,8 @@ radeon_pci_shutdown(struct pci_dev *pdev)
*/
if (radeon_device_is_virtual())
radeon_pci_remove(pdev);
+ else
+ drm_helper_force_disable_all(pci_get_drvdata(pdev));
#if defined(CONFIG_PPC64) || defined(CONFIG_MACH_LOONGSON64)
/*