Rev 5060 | Rev 5354 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5060 | Rev 5097 | ||
---|---|---|---|
Line 22... | Line 22... | ||
22 | * |
22 | * |
23 | * Authors: |
23 | * Authors: |
24 | * Eric Anholt |
24 | * Eric Anholt |
25 | * |
25 | * |
26 | */ |
26 | */ |
27 | #include |
27 | #include |
28 | #include |
28 | #include |
- | 29 | #include |
|
29 | #include |
30 | #include |
30 | #include "i915_drv.h" |
31 | #include "i915_drv.h" |
31 | #include "intel_bios.h" |
32 | #include "intel_bios.h" |
Line 32... | Line 33... | ||
32 | 33 | ||
Line 1120... | Line 1121... | ||
1120 | info->supports_hdmi = info->supports_dvi; |
1121 | info->supports_hdmi = info->supports_dvi; |
1121 | info->supports_dp = (port != PORT_E); |
1122 | info->supports_dp = (port != PORT_E); |
1122 | } |
1123 | } |
1123 | } |
1124 | } |
Line -... | Line 1125... | ||
- | 1125 | ||
- | 1126 | static int intel_no_opregion_vbt_callback(const struct dmi_system_id *id) |
|
- | 1127 | { |
|
- | 1128 | DRM_DEBUG_KMS("Falling back to manually reading VBT from " |
|
- | 1129 | "VBIOS ROM for %s\n", |
|
- | 1130 | id->ident); |
|
- | 1131 | return 1; |
|
- | 1132 | } |
|
- | 1133 | ||
- | 1134 | static const struct dmi_system_id intel_no_opregion_vbt[] = { |
|
- | 1135 | { |
|
- | 1136 | .callback = intel_no_opregion_vbt_callback, |
|
- | 1137 | .ident = "ThinkCentre A57", |
|
- | 1138 | .matches = { |
|
- | 1139 | DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), |
|
- | 1140 | DMI_MATCH(DMI_PRODUCT_NAME, "97027RG"), |
|
- | 1141 | }, |
|
- | 1142 | }, |
|
- | 1143 | { } |
|
- | 1144 | }; |
|
1124 | 1145 | ||
1125 | static struct bdb_header *validate_vbt(char *base, size_t size, |
1146 | static struct bdb_header *validate_vbt(char *base, size_t size, |
1126 | struct vbt_header *vbt, |
1147 | struct vbt_header *vbt, |
1127 | const char *source) |
1148 | const char *source) |
1128 | { |
1149 | { |
Line 1183... | Line 1204... | ||
1183 | return -ENODEV; |
1204 | return -ENODEV; |
Line 1184... | Line 1205... | ||
1184 | 1205 | ||
Line 1185... | Line 1206... | ||
1185 | init_vbt_defaults(dev_priv); |
1206 | init_vbt_defaults(dev_priv); |
1186 | 1207 | ||
1187 | /* XXX Should this validation be moved to intel_opregion.c? */ |
1208 | /* XXX Should this validation be moved to intel_opregion.c? */ |
1188 | if (dev_priv->opregion.vbt) |
1209 | if (!dmi_check_system(intel_no_opregion_vbt) && dev_priv->opregion.vbt) |
1189 | bdb = validate_vbt((char *)dev_priv->opregion.header, OPREGION_SIZE, |
1210 | bdb = validate_vbt((char *)dev_priv->opregion.header, OPREGION_SIZE, |
Line 1190... | Line 1211... | ||
1190 | (struct vbt_header *)dev_priv->opregion.vbt, |
1211 | (struct vbt_header *)dev_priv->opregion.vbt, |