i915: Add option to bypass vbt table.

This change enables the use of displays where the vbt table just
contains inappropriate values, but either the vesa defaults or
the video=... modes do something sensible with the attached display.

The problem happens with an embedded board that contains vbt bios
tables that do not match the attached display.  Using this change and
the appropriate kernel boot command line they are able to use an
otherwise completely unusable secondary display on that embedded
board.

Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Signed-off-by: Mathias Froehlich <Mathias.Froehlich@web.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Mathias Fröhlich 2012-03-01 06:44:35 +01:00 committed by Daniel Vetter
parent c501ae7f33
commit c10e408a00
2 changed files with 7 additions and 2 deletions

View File

@ -89,8 +89,8 @@ MODULE_PARM_DESC(lvds_use_ssc,
int i915_vbt_sdvo_panel_type __read_mostly = -1; int i915_vbt_sdvo_panel_type __read_mostly = -1;
module_param_named(vbt_sdvo_panel_type, i915_vbt_sdvo_panel_type, int, 0600); module_param_named(vbt_sdvo_panel_type, i915_vbt_sdvo_panel_type, int, 0600);
MODULE_PARM_DESC(vbt_sdvo_panel_type, MODULE_PARM_DESC(vbt_sdvo_panel_type,
"Override selection of SDVO panel mode in the VBT " "Override/Ignore selection of SDVO panel mode in the VBT "
"(default: auto)"); "(-2=ignore, -1=auto [default], index in VBT BIOS table)");
static bool i915_try_reset __read_mostly = true; static bool i915_try_reset __read_mostly = true;
module_param_named(reset, i915_try_reset, bool, 0600); module_param_named(reset, i915_try_reset, bool, 0600);

View File

@ -255,6 +255,11 @@ parse_sdvo_panel_data(struct drm_i915_private *dev_priv,
int index; int index;
index = i915_vbt_sdvo_panel_type; index = i915_vbt_sdvo_panel_type;
if (index == -2) {
DRM_DEBUG_KMS("Ignore SDVO panel mode from BIOS VBT tables.\n");
return;
}
if (index == -1) { if (index == -1) {
struct bdb_sdvo_lvds_options *sdvo_lvds_options; struct bdb_sdvo_lvds_options *sdvo_lvds_options;