diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_opregion.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c index b8f106d9ecf8..3035b402973f 100644 --- a/drivers/gpu/drm/i915/intel_opregion.c +++ b/drivers/gpu/drm/i915/intel_opregion.c | |||
| @@ -55,7 +55,12 @@ | |||
| 55 | struct opregion_header { | 55 | struct opregion_header { |
| 56 | u8 signature[16]; | 56 | u8 signature[16]; |
| 57 | u32 size; | 57 | u32 size; |
| 58 | u32 opregion_ver; | 58 | struct { |
| 59 | u8 rsvd; | ||
| 60 | u8 revision; | ||
| 61 | u8 minor; | ||
| 62 | u8 major; | ||
| 63 | } __packed over; | ||
| 59 | u8 bios_ver[32]; | 64 | u8 bios_ver[32]; |
| 60 | u8 vbios_ver[16]; | 65 | u8 vbios_ver[16]; |
| 61 | u8 driver_ver[16]; | 66 | u8 driver_ver[16]; |
| @@ -925,6 +930,11 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv) | |||
| 925 | opregion->header = base; | 930 | opregion->header = base; |
| 926 | opregion->lid_state = base + ACPI_CLID; | 931 | opregion->lid_state = base + ACPI_CLID; |
| 927 | 932 | ||
| 933 | DRM_DEBUG_DRIVER("ACPI OpRegion version %u.%u.%u\n", | ||
| 934 | opregion->header->over.major, | ||
| 935 | opregion->header->over.minor, | ||
| 936 | opregion->header->over.revision); | ||
| 937 | |||
| 928 | mboxes = opregion->header->mboxes; | 938 | mboxes = opregion->header->mboxes; |
| 929 | if (mboxes & MBOX_ACPI) { | 939 | if (mboxes & MBOX_ACPI) { |
| 930 | DRM_DEBUG_DRIVER("Public ACPI methods supported\n"); | 940 | DRM_DEBUG_DRIVER("Public ACPI methods supported\n"); |
| @@ -953,7 +963,7 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv) | |||
| 953 | if (dmi_check_system(intel_no_opregion_vbt)) | 963 | if (dmi_check_system(intel_no_opregion_vbt)) |
| 954 | goto out; | 964 | goto out; |
| 955 | 965 | ||
| 956 | if (opregion->header->opregion_ver >= 2 && opregion->asle && | 966 | if (opregion->header->over.major >= 2 && opregion->asle && |
| 957 | opregion->asle->rvda && opregion->asle->rvds) { | 967 | opregion->asle->rvda && opregion->asle->rvds) { |
| 958 | opregion->rvda = memremap(opregion->asle->rvda, | 968 | opregion->rvda = memremap(opregion->asle->rvda, |
| 959 | opregion->asle->rvds, | 969 | opregion->asle->rvds, |
