[Intel-gfx] [PATCH 04/10] drm/i915/adl_s: Add PHYs for Alderlake S
Lucas De Marchi
lucas.demarchi at intel.com
Mon Jan 25 17:51:02 UTC 2021
On Mon, Jan 25, 2021 at 06:07:47AM -0800, Aditya Swarup wrote:
>From: Anusha Srivatsa <anusha.srivatsa at intel.com>
>
>Alderlake-S has 5 combo phys, add reg definitions for
>combo phys and update the port to phy helper for ADL-S.
>
>v2:
>- Change IS_GEN() >= 12 to IS_TIGERLAKE() in intel_phy_is_tc()
>and return false for platforms RKL,DG1 and ADLS.(mdroper)
changelog here is missing v3: fix intel_phy_is_tc breakage for DG1
but only for completeness... I remembered there was an issue in this
patch but I was not finding what it was and went to check. This one lgtm
Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>
Lucas De Marchi
>
>Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>Cc: Jani Nikula <jani.nikula at intel.com>
>Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
>Cc: Imre Deak <imre.deak at intel.com>
>Cc: Matt Roper <matthew.d.roper at intel.com>
>Signed-off-by: Anusha Srivatsa <anusha.srivatsa at intel.com>
>Signed-off-by: Aditya Swarup <aditya.swarup at intel.com>
>Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
>---
> drivers/gpu/drm/i915/display/intel_display.c | 12 +++++++-----
> drivers/gpu/drm/i915/i915_reg.h | 5 ++++-
> 2 files changed, 11 insertions(+), 6 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>index 7ec7d94b8cdb..acf06feffd3e 100644
>--- a/drivers/gpu/drm/i915/display/intel_display.c
>+++ b/drivers/gpu/drm/i915/display/intel_display.c
>@@ -5668,6 +5668,8 @@ bool intel_phy_is_combo(struct drm_i915_private *dev_priv, enum phy phy)
> {
> if (phy == PHY_NONE)
> return false;
>+ else if (IS_ALDERLAKE_S(dev_priv))
>+ return phy <= PHY_E;
> else if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv))
> return phy <= PHY_D;
> else if (IS_JSL_EHL(dev_priv))
>@@ -5680,11 +5682,9 @@ 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)
> {
>- if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv))
>- return false;
>- else if (INTEL_GEN(dev_priv) >= 12)
>+ if (IS_TIGERLAKE(dev_priv))
> return phy >= PHY_D && phy <= PHY_I;
>- else if (INTEL_GEN(dev_priv) >= 11 && !IS_JSL_EHL(dev_priv))
>+ else if (IS_ICELAKE(dev_priv))
> return phy >= PHY_C && phy <= PHY_F;
> else
> return false;
>@@ -5692,7 +5692,9 @@ 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)
> {
>- if ((IS_DG1(i915) || IS_ROCKETLAKE(i915)) && port >= PORT_TC1)
>+ if (IS_ALDERLAKE_S(i915) && port >= PORT_TC1)
>+ return PHY_B + port - PORT_TC1;
>+ else if ((IS_DG1(i915) || IS_ROCKETLAKE(i915)) && port >= PORT_TC1)
> return PHY_C + port - PORT_TC1;
> else if (IS_JSL_EHL(i915) && port == PORT_D)
> return PHY_A;
>diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>index 8b9bbc6bacb1..0fe499840b82 100644
>--- a/drivers/gpu/drm/i915/i915_reg.h
>+++ b/drivers/gpu/drm/i915/i915_reg.h
>@@ -1874,10 +1874,13 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
> #define _ICL_COMBOPHY_B 0x6C000
> #define _EHL_COMBOPHY_C 0x160000
> #define _RKL_COMBOPHY_D 0x161000
>+#define _ADL_COMBOPHY_E 0x16B000
>+
> #define _ICL_COMBOPHY(phy) _PICK(phy, _ICL_COMBOPHY_A, \
> _ICL_COMBOPHY_B, \
> _EHL_COMBOPHY_C, \
>- _RKL_COMBOPHY_D)
>+ _RKL_COMBOPHY_D, \
>+ _ADL_COMBOPHY_E)
>
> /* CNL/ICL Port CL_DW registers */
> #define _ICL_PORT_CL_DW(dw, phy) (_ICL_COMBOPHY(phy) + \
>--
>2.27.0
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
More information about the Intel-gfx
mailing list