Skip to content

Commit b4bde55

Browse files
lucasdemarchirodrigovivi
authored andcommitted
drm/i915/display: split DISPLAY_VER 9 and 10 in intel_setup_outputs()
Commit 5a9d38b ("drm/i915/display: hide workaround for broken vbt in intel_bios.c") moved the workaround for broken or missing VBT to intel_bios.c. However is_port_valid() only protects the handling of different skus of the same display version. Since in intel_setup_outputs() we share the code path with version 9, this would also create port F for SKL/KBL, which does not exist. Missing VBT can be reproduced when starting a headless QEMU with no opregion available. Avoid the issue by splitting versions 9 and 10 in intel_setup_outputs(), which also makes it more clear what code path it's taking for each version. v2: move generic display version after Geminilake since that one has a different set of outputs Fixes: 5a9d38b ("drm/i915/display: hide workaround for broken vbt in intel_bios.c") Cc: Jani Nikula <[email protected]> Cc: Rodrigo Vivi <[email protected]> Reported-by: Christoph Hellwig <[email protected]> Signed-off-by: Lucas De Marchi <[email protected]> Reviewed-by: Rodrigo Vivi <[email protected]> Reviewed-by: Matt Roper <[email protected]> Tested-by: Christoph Hellwig <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit ec387b8) Signed-off-by: Rodrigo Vivi <[email protected]>
1 parent 5d3a618 commit b4bde55

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

drivers/gpu/drm/i915/display/intel_display.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11361,13 +11361,19 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
1136111361
intel_ddi_init(dev_priv, PORT_B);
1136211362
intel_ddi_init(dev_priv, PORT_C);
1136311363
vlv_dsi_init(dev_priv);
11364-
} else if (DISPLAY_VER(dev_priv) >= 9) {
11364+
} else if (DISPLAY_VER(dev_priv) == 10) {
1136511365
intel_ddi_init(dev_priv, PORT_A);
1136611366
intel_ddi_init(dev_priv, PORT_B);
1136711367
intel_ddi_init(dev_priv, PORT_C);
1136811368
intel_ddi_init(dev_priv, PORT_D);
1136911369
intel_ddi_init(dev_priv, PORT_E);
1137011370
intel_ddi_init(dev_priv, PORT_F);
11371+
} else if (DISPLAY_VER(dev_priv) >= 9) {
11372+
intel_ddi_init(dev_priv, PORT_A);
11373+
intel_ddi_init(dev_priv, PORT_B);
11374+
intel_ddi_init(dev_priv, PORT_C);
11375+
intel_ddi_init(dev_priv, PORT_D);
11376+
intel_ddi_init(dev_priv, PORT_E);
1137111377
} else if (HAS_DDI(dev_priv)) {
1137211378
u32 found;
1137311379

0 commit comments

Comments
 (0)