From 6e548d1f89087a7a64eab59b07cba74827806ea6 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Fri, 20 Aug 2010 18:26:46 +0200 Subject: [PATCH] --- yaml --- r: 217885 b: refs/heads/master c: 6c0d93500eb50098e4e35b8b79e073f2f2f5b773 h: refs/heads/master i: 217883: 1380e4b300023991d555b5f47d22fdea7bc90f10 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_dma.c | 2 +- trunk/drivers/gpu/drm/i915/intel_display.c | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 929ca60394ec..d81466f50b91 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bc0c7f14432f7f94b16f972f2d23b8c1248249b4 +refs/heads/master: 6c0d93500eb50098e4e35b8b79e073f2f2f5b773 diff --git a/trunk/drivers/gpu/drm/i915/i915_dma.c b/trunk/drivers/gpu/drm/i915/i915_dma.c index 736cca8a03d4..45236e716669 100644 --- a/trunk/drivers/gpu/drm/i915/i915_dma.c +++ b/trunk/drivers/gpu/drm/i915/i915_dma.c @@ -2275,7 +2275,7 @@ int i915_driver_unload(struct drm_device *dev) dev_priv->child_dev = NULL; dev_priv->child_dev_num = 0; } - drm_irq_uninstall(dev); + vga_switcheroo_unregister_client(dev->pdev); vga_client_register(dev->pdev, NULL, NULL, NULL); } diff --git a/trunk/drivers/gpu/drm/i915/intel_display.c b/trunk/drivers/gpu/drm/i915/intel_display.c index 7c9103030036..20be935830b0 100644 --- a/trunk/drivers/gpu/drm/i915/intel_display.c +++ b/trunk/drivers/gpu/drm/i915/intel_display.c @@ -6073,6 +6073,11 @@ void intel_modeset_cleanup(struct drm_device *dev) mutex_unlock(&dev->struct_mutex); + /* Disable the irq before mode object teardown, for the irq might + * enqueue unpin/hotplug work. */ + drm_irq_uninstall(dev); + cancel_work_sync(&dev_priv->hotplug_work); + drm_mode_config_cleanup(dev); }