aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_dma.c
diff options
context:
space:
mode:
authorMatthew Garrett <mjg59@srcf.ucam.org>2009-03-19 17:35:39 -0400
committerLen Brown <len.brown@intel.com>2009-03-27 22:11:03 -0400
commit74a365b3f354fafc537efa5867deb7a9fadbfe27 (patch)
tree66ebff203807d2ed77e77e1ccc2f71f63e571098 /drivers/gpu/drm/i915/i915_dma.c
parentc60d638e29c780b75b648283a197d0226e3576c3 (diff)
ACPI: Populate DIDL before registering ACPI video device on Intel
Intel graphics hardware that implements the ACPI IGD OpRegion spec requires that the list of display devices be populated before any ACPI video methods are called. Detect when this is the case and defer registration until the opregion code calls it. Fixes crashes on HP laptops. http://bugzilla.kernel.org/show_bug.cgi?id=11259 Signed-off-by: Matthew Garrett <mjg@redhat.com> Acked-by: Eric Anholt <eric@anholt.net> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_dma.c')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 6d21b9e48b89..638686904e06 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1144,8 +1144,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1144 if (!IS_I945G(dev) && !IS_I945GM(dev)) 1144 if (!IS_I945G(dev) && !IS_I945GM(dev))
1145 pci_enable_msi(dev->pdev); 1145 pci_enable_msi(dev->pdev);
1146 1146
1147 intel_opregion_init(dev);
1148
1149 spin_lock_init(&dev_priv->user_irq_lock); 1147 spin_lock_init(&dev_priv->user_irq_lock);
1150 dev_priv->user_irq_refcount = 0; 1148 dev_priv->user_irq_refcount = 0;
1151 1149
@@ -1164,6 +1162,9 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1164 } 1162 }
1165 } 1163 }
1166 1164
1165 /* Must be done after probing outputs */
1166 intel_opregion_init(dev, 0);
1167
1167 return 0; 1168 return 0;
1168 1169
1169out_iomapfree: 1170out_iomapfree: