aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-08-19 11:09:23 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-09-08 05:13:32 -0400
commit44834a67c0082e2cf74b16be91e49108b1432d65 (patch)
treeebe2c53b1a08b99a95b579942ae2d7603935709d /drivers/gpu/drm/i915/i915_drv.c
parent3b61796785e7b0ca8846b7a709216dceb6e2f68d (diff)
drm/i915: Use the VBT from OpRegion when available (v3)
It is recommended that we use the Video BIOS tables that were copied into the OpRegion during POST when initialising the driver. This saves us from having to furtle around inside the ROM ourselves and possibly allows the vBIOS to adjust the tables prior to initialisation. On some systems, such as the Samsung N210, there is no accessible VBIOS and the only means of finding the VBT is through the OpRegion. v2: Rearrange the code so that ASLE is enabled along with ACPI v3: Enable OpRegion parsing even without ACPI Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index ba75255ec450..2879a768d65c 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -236,7 +236,7 @@ static int i915_drm_freeze(struct drm_device *dev)
236 236
237 i915_save_state(dev); 237 i915_save_state(dev);
238 238
239 intel_opregion_free(dev, 1); 239 intel_opregion_fini(dev);
240 240
241 /* Modeset on resume, not lid events */ 241 /* Modeset on resume, not lid events */
242 dev_priv->modeset_on_lid = 0; 242 dev_priv->modeset_on_lid = 0;
@@ -276,8 +276,7 @@ static int i915_drm_thaw(struct drm_device *dev)
276 int error = 0; 276 int error = 0;
277 277
278 i915_restore_state(dev); 278 i915_restore_state(dev);
279 279 intel_opregion_setup(dev);
280 intel_opregion_init(dev, 1);
281 280
282 /* KMS EnterVT equivalent */ 281 /* KMS EnterVT equivalent */
283 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 282 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
@@ -293,6 +292,8 @@ static int i915_drm_thaw(struct drm_device *dev)
293 drm_helper_resume_force_mode(dev); 292 drm_helper_resume_force_mode(dev);
294 } 293 }
295 294
295 intel_opregion_init(dev);
296
296 dev_priv->modeset_on_lid = 0; 297 dev_priv->modeset_on_lid = 0;
297 298
298 return error; 299 return error;