Commit f287c536 authored by Aditya Swarup's avatar Aditya Swarup Committed by Lucas De Marchi

drm/i915/dg1: Enable ports

For DG1 we have a little of mix up wrt to DDI/port names and indexes.
Bspec refers to the ports as DDIA, DDIB, DDI USBC1 and DDI USBC2
(besides the DDIA, DDIB, DDIC, DDID), but the previous naming is the
most unambiguous one. This means that for any register on Display Engine
we should use the index of A, B, D and E. However in some places this is
not true:

- VBT: uses C and D and have to be mapped to D/E

- IO/Combo: uses C and D, but we already differentiate those when
  we created the phy vs port distinction.

This additional mapping for VBT and phy are already covered in previous
patches, so now we can initialize all the DDIs as A, B, D and E.

v2: Squash previous patch enabling just ports A and B since most of the
pumbling code is already merged now

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Clinton Taylor <Clinton.A.Taylor@intel.com>
Signed-off-by: default avatarAditya Swarup <aditya.swarup@intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201117084836.2318234-1-lucas.demarchi@intel.com
parent 9533fd80
...@@ -7396,7 +7396,7 @@ bool intel_phy_is_combo(struct drm_i915_private *dev_priv, enum phy phy) ...@@ -7396,7 +7396,7 @@ bool intel_phy_is_combo(struct drm_i915_private *dev_priv, enum phy phy)
{ {
if (phy == PHY_NONE) if (phy == PHY_NONE)
return false; return false;
else if (IS_ROCKETLAKE(dev_priv)) else if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv))
return phy <= PHY_D; return phy <= PHY_D;
else if (IS_JSL_EHL(dev_priv)) else if (IS_JSL_EHL(dev_priv))
return phy <= PHY_C; return phy <= PHY_C;
...@@ -7408,7 +7408,7 @@ bool intel_phy_is_combo(struct drm_i915_private *dev_priv, enum phy phy) ...@@ -7408,7 +7408,7 @@ bool intel_phy_is_combo(struct drm_i915_private *dev_priv, enum phy phy)
bool intel_phy_is_tc(struct drm_i915_private *dev_priv, enum phy phy) bool intel_phy_is_tc(struct drm_i915_private *dev_priv, enum phy phy)
{ {
if (IS_ROCKETLAKE(dev_priv)) if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv))
return false; return false;
else if (INTEL_GEN(dev_priv) >= 12) else if (INTEL_GEN(dev_priv) >= 12)
return phy >= PHY_D && phy <= PHY_I; return phy >= PHY_D && phy <= PHY_I;
...@@ -7420,7 +7420,7 @@ bool intel_phy_is_tc(struct drm_i915_private *dev_priv, enum phy phy) ...@@ -7420,7 +7420,7 @@ bool intel_phy_is_tc(struct drm_i915_private *dev_priv, enum phy phy)
enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port) enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port)
{ {
if (IS_ROCKETLAKE(i915) && port >= PORT_TC1) if ((IS_DG1(i915) || IS_ROCKETLAKE(i915)) && port >= PORT_TC1)
return PHY_C + port - PORT_TC1; return PHY_C + port - PORT_TC1;
else if (IS_JSL_EHL(i915) && port == PORT_D) else if (IS_JSL_EHL(i915) && port == PORT_D)
return PHY_A; return PHY_A;
...@@ -17601,7 +17601,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) ...@@ -17601,7 +17601,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
if (!HAS_DISPLAY(dev_priv)) if (!HAS_DISPLAY(dev_priv))
return; return;
if (IS_ROCKETLAKE(dev_priv)) { if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv)) {
intel_ddi_init(dev_priv, PORT_A); intel_ddi_init(dev_priv, PORT_A);
intel_ddi_init(dev_priv, PORT_B); intel_ddi_init(dev_priv, PORT_B);
intel_ddi_init(dev_priv, PORT_TC1); intel_ddi_init(dev_priv, PORT_TC1);
......
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