drm/i915/bios: Use the platform's port_mask when there is no VBT
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 19 Mar 2024 09:24:43 +0000 (11:24 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 26 Mar 2024 13:04:13 +0000 (15:04 +0200)
When we have no VBT we currently assume ports A-F are
all pontially valid for every platform. That is nonsense.
Grab the bitmask of valid ports from the runtime info
instead.

Although the defaults we actually fill here look semi-sensible
only for hsw-skl era hardware. Dunno if we should try to do
something more appropriate here for other platforms,
or just try to nuke the whole thing?

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240319092443.15769-2-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_bios.c

index c13a98431a7b1ae5899a1490fc22bb7f2bfeba24..2abd2d7ceda2bee3229532bf958430e29c2ad62b 100644 (file)
@@ -2890,9 +2890,8 @@ init_vbt_panel_defaults(struct intel_panel *panel)
 static void
 init_vbt_missing_defaults(struct drm_i915_private *i915)
 {
+       unsigned int ports = DISPLAY_RUNTIME_INFO(i915)->port_mask;
        enum port port;
-       int ports = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) |
-                   BIT(PORT_D) | BIT(PORT_E) | BIT(PORT_F);
 
        if (!HAS_DDI(i915) && !IS_CHERRYVIEW(i915))
                return;