drm/i915/bios: check DDI port presence based on child device
authorJani Nikula <jani.nikula@intel.com>
Fri, 17 Jan 2020 14:29:28 +0000 (16:29 +0200)
committerJani Nikula <jani.nikula@intel.com>
Tue, 21 Jan 2020 08:55:24 +0000 (10:55 +0200)
Report port presence based on port presence in VBT alone, relaxing the
requirements on supported encoders (DP, DVI, or HDMI). The goal is to
make future changes easier, however there is a small risk of reporting
more ports present than before in case of dubious VBT.

Regarding the current callers of intel_bios_is_port_present(), the
potential issue might be caused by DVO_PORT_CRT being identified as port
E in dvo_port_to_port(). Hopefully no VBT has that on SKL+ which support
DP/DVI/HDMI on port E; the current CRT init code on HSW/BDW does not
care.

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

index 4c69253..70fb87e 100644 (file)
@@ -2236,9 +2236,7 @@ bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port por
                const struct ddi_vbt_port_info *port_info =
                        &dev_priv->vbt.ddi_port_info[port];
 
-               return port_info->supports_dp ||
-                      port_info->supports_dvi ||
-                      port_info->supports_hdmi;
+               return port_info->child;
        }
 
        /* FIXME maybe deal with port A as well? */