aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_opregion.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_opregion.c')
-rw-r--r--drivers/gpu/drm/i915/intel_opregion.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
index 5b9fc790d300..859c9acbee73 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -986,8 +986,15 @@ int intel_opregion_setup(struct drm_device *dev)
if (mboxes & MBOX_ASLE_EXT)
DRM_DEBUG_DRIVER("ASLE extension supported\n");
- if (!dmi_check_system(intel_no_opregion_vbt))
- opregion->vbt = base + OPREGION_VBT_OFFSET;
+ if (!dmi_check_system(intel_no_opregion_vbt)) {
+ void *vbt = base + OPREGION_VBT_OFFSET;
+ u32 vbt_size = OPREGION_SIZE - OPREGION_VBT_OFFSET;
+
+ if (intel_bios_is_valid_vbt(vbt, vbt_size)) {
+ DRM_DEBUG_KMS("Found valid VBT in ACPI OpRegion\n");
+ opregion->vbt = vbt;
+ }
+ }
return 0;