Commit 6c8337da authored by Vandita Kulkarni's avatar Vandita Kulkarni Committed by Lucas De Marchi

drm/i915/tgl: Add additional ports for Tiger Lake

There are 2 new additional typeC ports in Tiger Lake and PORT-C is now a
combophy port. This results in 6 typeC ports and 3 combophy ports.
These 6 TC ports can be DP alternate mode, DP over thunderbolt, native
DP on legacy DP connector or native HDMI on legacy connector.

v2: Rebase on new modular FIA code (Lucas)
v3: Also add new port in port_identifier(), even though it can't
    possibly be used there (requested by José)
v4: Add conversion port->tc_port in helper function after introction of
    phy namespace (Lucas)

Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Signed-off-by: default avatarVandita Kulkarni <vandita.kulkarni@intel.com>
Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190711173115.28296-13-lucas.demarchi@intel.com
parent c9014a2c
...@@ -4286,6 +4286,18 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) ...@@ -4286,6 +4286,18 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
intel_dig_port->ddi_io_power_domain = intel_dig_port->ddi_io_power_domain =
POWER_DOMAIN_PORT_DDI_F_IO; POWER_DOMAIN_PORT_DDI_F_IO;
break; break;
case PORT_G:
intel_dig_port->ddi_io_power_domain =
POWER_DOMAIN_PORT_DDI_G_IO;
break;
case PORT_H:
intel_dig_port->ddi_io_power_domain =
POWER_DOMAIN_PORT_DDI_H_IO;
break;
case PORT_I:
intel_dig_port->ddi_io_power_domain =
POWER_DOMAIN_PORT_DDI_I_IO;
break;
default: default:
MISSING_CASE(port); MISSING_CASE(port);
} }
......
...@@ -6706,6 +6706,9 @@ enum tc_port intel_port_to_tc(struct drm_i915_private *dev_priv, enum port port) ...@@ -6706,6 +6706,9 @@ enum tc_port intel_port_to_tc(struct drm_i915_private *dev_priv, enum port port)
if (!intel_phy_is_tc(dev_priv, intel_port_to_phy(dev_priv, port))) if (!intel_phy_is_tc(dev_priv, intel_port_to_phy(dev_priv, port)))
return PORT_TC_NONE; return PORT_TC_NONE;
if (INTEL_GEN(dev_priv) >= 12)
return port - PORT_D;
return port - PORT_C; return port - PORT_C;
} }
......
...@@ -177,6 +177,12 @@ static inline const char *port_identifier(enum port port) ...@@ -177,6 +177,12 @@ static inline const char *port_identifier(enum port port)
return "Port E"; return "Port E";
case PORT_F: case PORT_F:
return "Port F"; return "Port F";
case PORT_G:
return "Port G";
case PORT_H:
return "Port H";
case PORT_I:
return "Port I";
default: default:
return "<invalid>"; return "<invalid>";
} }
...@@ -189,6 +195,8 @@ enum tc_port { ...@@ -189,6 +195,8 @@ enum tc_port {
PORT_TC2, PORT_TC2,
PORT_TC3, PORT_TC3,
PORT_TC4, PORT_TC4,
PORT_TC5,
PORT_TC6,
I915_MAX_TC_PORTS I915_MAX_TC_PORTS
}; };
......
...@@ -34,7 +34,7 @@ enum i915_component_type { ...@@ -34,7 +34,7 @@ enum i915_component_type {
/* MAX_PORT is the number of port /* MAX_PORT is the number of port
* It must be sync with I915_MAX_PORTS defined i915_drv.h * It must be sync with I915_MAX_PORTS defined i915_drv.h
*/ */
#define MAX_PORTS 6 #define MAX_PORTS 9
/** /**
* struct i915_audio_component - Used for direct communication between i915 and hda drivers * struct i915_audio_component - Used for direct communication between i915 and hda drivers
......
...@@ -109,6 +109,9 @@ enum port { ...@@ -109,6 +109,9 @@ enum port {
PORT_D, PORT_D,
PORT_E, PORT_E,
PORT_F, PORT_F,
PORT_G,
PORT_H,
PORT_I,
I915_MAX_PORTS I915_MAX_PORTS
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment