drm/i915/bios: Parse the VBT TypeC and Thunderbolt port flags
authorImre Deak <imre.deak@intel.com>
Fri, 14 Dec 2018 18:27:01 +0000 (20:27 +0200)
committerImre Deak <imre.deak@intel.com>
Tue, 18 Dec 2018 15:00:16 +0000 (17:00 +0200)
This is needed by the next patch to determine if a DDI TypeC port is
physically wired to a legacy DP or legacy HDMI connector or if the port
is wired to a USB-C/Thunderbolt connector.

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181214182703.18865-3-imre.deak@intel.com
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/intel_bios.c

index c34198f51b131d102c91f670ec545e25fba096e6..815db160b96619dcccf3cc586a86c828ecc7ed1e 100644 (file)
@@ -935,6 +935,8 @@ struct ddi_vbt_port_info {
        uint8_t supports_hdmi:1;
        uint8_t supports_dp:1;
        uint8_t supports_edp:1;
+       uint8_t supports_typec_usb:1;
+       uint8_t supports_tbt:1;
 
        uint8_t alternate_aux_channel;
        uint8_t alternate_ddc_pin;
index 7b7e7abfa2591ec283f38b5bb0fb8f71de50d455..764d84d4109b6e319290eda861bf2edd8b82e4b5 100644 (file)
@@ -1386,8 +1386,15 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
        info->supports_dp = is_dp;
        info->supports_edp = is_edp;
 
-       DRM_DEBUG_KMS("Port %c VBT info: DP:%d HDMI:%d DVI:%d EDP:%d CRT:%d\n",
-                     port_name(port), is_dp, is_hdmi, is_dvi, is_edp, is_crt);
+       if (bdb_version >= 195)
+               info->supports_typec_usb = child->dp_usb_type_c;
+
+       if (bdb_version >= 209)
+               info->supports_tbt = child->tbt;
+
+       DRM_DEBUG_KMS("Port %c VBT info: DP:%d HDMI:%d DVI:%d EDP:%d CRT:%d TCUSB:%d TBT:%d\n",
+                     port_name(port), is_dp, is_hdmi, is_dvi, is_edp, is_crt,
+                     info->supports_typec_usb, info->supports_tbt);
 
        if (is_edp && is_dvi)
                DRM_DEBUG_KMS("Internal DP port %c is TMDS compatible\n",