On Wed, 2019-07-03 at 16:37 -0700, Matt Roper wrote: > Convert the code that operates directly on gen11 combo PHY's to use > the > new namespace. Combo PHY registers are those named "ICL_PORT_*" plus > ICL_DPHY_CHKN. > > Note that a lot of the PHY programming happens in the MIPI DSI code. > For clarity I've added a for_each_dsi_phy() to loop over the phys > used > by DSI. Since DSI always uses A & B on gen11, port=phy in all cases > so > it doesn't actually matter which form we use in the DSI code. I've > used > the phy iterator in code that's explicitly working with the combo > PHY, > but left the rest of the DSI code using the port iterator and > namespace > to minimize patch deltas. We can switch the rest of the DSI code > over > to use phy terminology later if this winds up being too confusing. > > Cc: José Roberto de Souza <jose.souza@xxxxxxxxx> > Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/icl_dsi.c | 127 ++++++++-------- > .../gpu/drm/i915/display/intel_combo_phy.c | 143 +++++++++------- > -- > .../gpu/drm/i915/display/intel_combo_phy.h | 3 +- > drivers/gpu/drm/i915/display/intel_ddi.c | 45 +++--- > drivers/gpu/drm/i915/display/intel_display.h | 4 + > .../drm/i915/display/intel_display_power.c | 16 +- > drivers/gpu/drm/i915/display/intel_dsi.h | 12 +- > drivers/gpu/drm/i915/i915_reg.h | 74 ++++----- > 8 files changed, 213 insertions(+), 211 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c > b/drivers/gpu/drm/i915/display/icl_dsi.c > index f574af62888c..575196f892c2 100644 > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > @@ -202,63 +202,62 @@ static void > dsi_program_swing_and_deemphasis(struct intel_encoder *encoder) > { > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > - enum port port; > + enum phy phy; > u32 tmp; > int lane; > > - for_each_dsi_port(port, intel_dsi->ports) { > - > + for_each_dsi_phy(phy, intel_dsi->phys) { > /* > * Program voltage swing and pre-emphasis level values > as per > * table in BSPEC under DDI buffer programing > */ > - tmp = I915_READ(ICL_PORT_TX_DW5_LN0(port)); > + tmp = I915_READ(ICL_PORT_TX_DW5_LN0(phy)); > tmp &= ~(SCALING_MODE_SEL_MASK | RTERM_SELECT_MASK); > tmp |= SCALING_MODE_SEL(0x2); > tmp |= TAP2_DISABLE | TAP3_DISABLE; > tmp |= RTERM_SELECT(0x6); > - I915_WRITE(ICL_PORT_TX_DW5_GRP(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW5_GRP(phy), tmp); > > - tmp = I915_READ(ICL_PORT_TX_DW5_AUX(port)); > + tmp = I915_READ(ICL_PORT_TX_DW5_AUX(phy)); > tmp &= ~(SCALING_MODE_SEL_MASK | RTERM_SELECT_MASK); > tmp |= SCALING_MODE_SEL(0x2); > tmp |= TAP2_DISABLE | TAP3_DISABLE; > tmp |= RTERM_SELECT(0x6); > - I915_WRITE(ICL_PORT_TX_DW5_AUX(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW5_AUX(phy), tmp); > > - tmp = I915_READ(ICL_PORT_TX_DW2_LN0(port)); > + tmp = I915_READ(ICL_PORT_TX_DW2_LN0(phy)); > tmp &= ~(SWING_SEL_LOWER_MASK | SWING_SEL_UPPER_MASK | > RCOMP_SCALAR_MASK); > tmp |= SWING_SEL_UPPER(0x2); > tmp |= SWING_SEL_LOWER(0x2); > tmp |= RCOMP_SCALAR(0x98); > - I915_WRITE(ICL_PORT_TX_DW2_GRP(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW2_GRP(phy), tmp); > > - tmp = I915_READ(ICL_PORT_TX_DW2_AUX(port)); > + tmp = I915_READ(ICL_PORT_TX_DW2_AUX(phy)); > tmp &= ~(SWING_SEL_LOWER_MASK | SWING_SEL_UPPER_MASK | > RCOMP_SCALAR_MASK); > tmp |= SWING_SEL_UPPER(0x2); > tmp |= SWING_SEL_LOWER(0x2); > tmp |= RCOMP_SCALAR(0x98); > - I915_WRITE(ICL_PORT_TX_DW2_AUX(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW2_AUX(phy), tmp); > > - tmp = I915_READ(ICL_PORT_TX_DW4_AUX(port)); > + tmp = I915_READ(ICL_PORT_TX_DW4_AUX(phy)); > tmp &= ~(POST_CURSOR_1_MASK | POST_CURSOR_2_MASK | > CURSOR_COEFF_MASK); > tmp |= POST_CURSOR_1(0x0); > tmp |= POST_CURSOR_2(0x0); > tmp |= CURSOR_COEFF(0x3f); > - I915_WRITE(ICL_PORT_TX_DW4_AUX(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW4_AUX(phy), tmp); > > for (lane = 0; lane <= 3; lane++) { > /* Bspec: must not use GRP register for write > */ > - tmp = I915_READ(ICL_PORT_TX_DW4_LN(lane, > port)); > + tmp = I915_READ(ICL_PORT_TX_DW4_LN(lane, phy)); > tmp &= ~(POST_CURSOR_1_MASK | > POST_CURSOR_2_MASK | > CURSOR_COEFF_MASK); > tmp |= POST_CURSOR_1(0x0); > tmp |= POST_CURSOR_2(0x0); > tmp |= CURSOR_COEFF(0x3f); > - I915_WRITE(ICL_PORT_TX_DW4_LN(lane, port), > tmp); > + I915_WRITE(ICL_PORT_TX_DW4_LN(lane, phy), tmp); > } > } > } > @@ -364,10 +363,10 @@ static void gen11_dsi_power_up_lanes(struct > intel_encoder *encoder) > { > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > - enum port port; > + enum phy phy; > > - for_each_dsi_port(port, intel_dsi->ports) > - intel_combo_phy_power_up_lanes(dev_priv, port, true, > + for_each_dsi_phy(phy, intel_dsi->phys) > + intel_combo_phy_power_up_lanes(dev_priv, phy, true, > intel_dsi->lane_count, > false); > } > > @@ -375,46 +374,46 @@ static void > gen11_dsi_config_phy_lanes_sequence(struct intel_encoder *encoder) > { > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > - enum port port; > + enum phy phy; > u32 tmp; > int lane; > > /* Step 4b(i) set loadgen select for transmit and aux lanes */ > - for_each_dsi_port(port, intel_dsi->ports) { > - tmp = I915_READ(ICL_PORT_TX_DW4_AUX(port)); > + for_each_dsi_phy(phy, intel_dsi->phys) { > + tmp = I915_READ(ICL_PORT_TX_DW4_AUX(phy)); > tmp &= ~LOADGEN_SELECT; > - I915_WRITE(ICL_PORT_TX_DW4_AUX(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW4_AUX(phy), tmp); > for (lane = 0; lane <= 3; lane++) { > - tmp = I915_READ(ICL_PORT_TX_DW4_LN(lane, > port)); > + tmp = I915_READ(ICL_PORT_TX_DW4_LN(lane, phy)); > tmp &= ~LOADGEN_SELECT; > if (lane != 2) > tmp |= LOADGEN_SELECT; > - I915_WRITE(ICL_PORT_TX_DW4_LN(lane, port), > tmp); > + I915_WRITE(ICL_PORT_TX_DW4_LN(lane, phy), tmp); > } > } > > /* Step 4b(ii) set latency optimization for transmit and aux > lanes */ > - for_each_dsi_port(port, intel_dsi->ports) { > - tmp = I915_READ(ICL_PORT_TX_DW2_AUX(port)); > + for_each_dsi_phy(phy, intel_dsi->phys) { > + tmp = I915_READ(ICL_PORT_TX_DW2_AUX(phy)); > tmp &= ~FRC_LATENCY_OPTIM_MASK; > tmp |= FRC_LATENCY_OPTIM_VAL(0x5); > - I915_WRITE(ICL_PORT_TX_DW2_AUX(port), tmp); > - tmp = I915_READ(ICL_PORT_TX_DW2_LN0(port)); > + I915_WRITE(ICL_PORT_TX_DW2_AUX(phy), tmp); > + tmp = I915_READ(ICL_PORT_TX_DW2_LN0(phy)); > tmp &= ~FRC_LATENCY_OPTIM_MASK; > tmp |= FRC_LATENCY_OPTIM_VAL(0x5); > - I915_WRITE(ICL_PORT_TX_DW2_GRP(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW2_GRP(phy), tmp); > > /* For EHL set latency optimization for PCS_DW1 lanes > */ > if (IS_ELKHARTLAKE(dev_priv)) { > - tmp = I915_READ(ICL_PORT_PCS_DW1_AUX(port)); > + tmp = I915_READ(ICL_PORT_PCS_DW1_AUX(phy)); > tmp &= ~LATENCY_OPTIM_MASK; > tmp |= LATENCY_OPTIM_VAL(0); > - I915_WRITE(ICL_PORT_PCS_DW1_AUX(port), tmp); > + I915_WRITE(ICL_PORT_PCS_DW1_AUX(phy), tmp); > > - tmp = I915_READ(ICL_PORT_PCS_DW1_LN0(port)); > + tmp = I915_READ(ICL_PORT_PCS_DW1_LN0(phy)); > tmp &= ~LATENCY_OPTIM_MASK; > tmp |= LATENCY_OPTIM_VAL(0x1); > - I915_WRITE(ICL_PORT_PCS_DW1_GRP(port), tmp); > + I915_WRITE(ICL_PORT_PCS_DW1_GRP(phy), tmp); > } > } > > @@ -425,16 +424,16 @@ static void > gen11_dsi_voltage_swing_program_seq(struct intel_encoder *encoder) > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > u32 tmp; > - enum port port; > + enum phy phy; > > /* clear common keeper enable bit */ > - for_each_dsi_port(port, intel_dsi->ports) { > - tmp = I915_READ(ICL_PORT_PCS_DW1_LN0(port)); > + for_each_dsi_phy(phy, intel_dsi->phys) { > + tmp = I915_READ(ICL_PORT_PCS_DW1_LN0(phy)); > tmp &= ~COMMON_KEEPER_EN; > - I915_WRITE(ICL_PORT_PCS_DW1_GRP(port), tmp); > - tmp = I915_READ(ICL_PORT_PCS_DW1_AUX(port)); > + I915_WRITE(ICL_PORT_PCS_DW1_GRP(phy), tmp); > + tmp = I915_READ(ICL_PORT_PCS_DW1_AUX(phy)); > tmp &= ~COMMON_KEEPER_EN; > - I915_WRITE(ICL_PORT_PCS_DW1_AUX(port), tmp); > + I915_WRITE(ICL_PORT_PCS_DW1_AUX(phy), tmp); > } > > /* > @@ -442,33 +441,33 @@ static void > gen11_dsi_voltage_swing_program_seq(struct intel_encoder *encoder) > * Note: loadgen select program is done > * as part of lane phy sequence configuration > */ > - for_each_dsi_port(port, intel_dsi->ports) { > - tmp = I915_READ(ICL_PORT_CL_DW5(port)); > + for_each_dsi_phy(phy, intel_dsi->phys) { > + tmp = I915_READ(ICL_PORT_CL_DW5(phy)); > tmp |= SUS_CLOCK_CONFIG; > - I915_WRITE(ICL_PORT_CL_DW5(port), tmp); > + I915_WRITE(ICL_PORT_CL_DW5(phy), tmp); > } > > /* Clear training enable to change swing values */ > - for_each_dsi_port(port, intel_dsi->ports) { > - tmp = I915_READ(ICL_PORT_TX_DW5_LN0(port)); > + for_each_dsi_phy(phy, intel_dsi->phys) { > + tmp = I915_READ(ICL_PORT_TX_DW5_LN0(phy)); > tmp &= ~TX_TRAINING_EN; > - I915_WRITE(ICL_PORT_TX_DW5_GRP(port), tmp); > - tmp = I915_READ(ICL_PORT_TX_DW5_AUX(port)); > + I915_WRITE(ICL_PORT_TX_DW5_GRP(phy), tmp); > + tmp = I915_READ(ICL_PORT_TX_DW5_AUX(phy)); > tmp &= ~TX_TRAINING_EN; > - I915_WRITE(ICL_PORT_TX_DW5_AUX(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW5_AUX(phy), tmp); > } > > /* Program swing and de-emphasis */ > dsi_program_swing_and_deemphasis(encoder); > > /* Set training enable to trigger update */ > - for_each_dsi_port(port, intel_dsi->ports) { > - tmp = I915_READ(ICL_PORT_TX_DW5_LN0(port)); > + for_each_dsi_phy(phy, intel_dsi->phys) { > + tmp = I915_READ(ICL_PORT_TX_DW5_LN0(phy)); > tmp |= TX_TRAINING_EN; > - I915_WRITE(ICL_PORT_TX_DW5_GRP(port), tmp); > - tmp = I915_READ(ICL_PORT_TX_DW5_AUX(port)); > + I915_WRITE(ICL_PORT_TX_DW5_GRP(phy), tmp); > + tmp = I915_READ(ICL_PORT_TX_DW5_AUX(phy)); > tmp |= TX_TRAINING_EN; > - I915_WRITE(ICL_PORT_TX_DW5_AUX(port), tmp); > + I915_WRITE(ICL_PORT_TX_DW5_AUX(phy), tmp); > } > } > > @@ -497,6 +496,7 @@ static void gen11_dsi_setup_dphy_timings(struct > intel_encoder *encoder) > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > u32 tmp; > enum port port; > + enum phy phy; > > /* Program T-INIT master registers */ > for_each_dsi_port(port, intel_dsi->ports) { > @@ -546,10 +546,10 @@ static void gen11_dsi_setup_dphy_timings(struct > intel_encoder *encoder) > } > > if (IS_ELKHARTLAKE(dev_priv)) { > - for_each_dsi_port(port, intel_dsi->ports) { > - tmp = I915_READ(ICL_DPHY_CHKN(port)); > + for_each_dsi_phy(phy, intel_dsi->phys) { > + tmp = I915_READ(ICL_DPHY_CHKN(phy)); > tmp |= ICL_DPHY_CHKN_AFE_OVER_PPI_STRAP; > - I915_WRITE(ICL_DPHY_CHKN(port), tmp); > + I915_WRITE(ICL_DPHY_CHKN(phy), tmp); > } > } > } > @@ -559,15 +559,12 @@ static void gen11_dsi_gate_clocks(struct > intel_encoder *encoder) > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > u32 tmp; > - enum port port; > enum phy phy; > > mutex_lock(&dev_priv->dpll_lock); > tmp = I915_READ(DPCLKA_CFGCR0_ICL); > - for_each_dsi_port(port, intel_dsi->ports) { > - phy = intel_port_to_phy(dev_priv, port); > + for_each_dsi_phy(phy, intel_dsi->phys) > tmp |= ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy); > - } > > I915_WRITE(DPCLKA_CFGCR0_ICL, tmp); > mutex_unlock(&dev_priv->dpll_lock); > @@ -578,15 +575,12 @@ static void gen11_dsi_ungate_clocks(struct > intel_encoder *encoder) > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > u32 tmp; > - enum port port; > enum phy phy; > > mutex_lock(&dev_priv->dpll_lock); > tmp = I915_READ(DPCLKA_CFGCR0_ICL); > - for_each_dsi_port(port, intel_dsi->ports) { > - phy = intel_port_to_phy(dev_priv, port); > + for_each_dsi_phy(phy, intel_dsi->phys) > tmp &= ~ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy); > - } > > I915_WRITE(DPCLKA_CFGCR0_ICL, tmp); > mutex_unlock(&dev_priv->dpll_lock); > @@ -598,22 +592,19 @@ static void gen11_dsi_map_pll(struct > intel_encoder *encoder, > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); > struct intel_shared_dpll *pll = crtc_state->shared_dpll; > - enum port port; > enum phy phy; > u32 val; > > mutex_lock(&dev_priv->dpll_lock); > > val = I915_READ(DPCLKA_CFGCR0_ICL); > - for_each_dsi_port(port, intel_dsi->ports) { > - phy = intel_port_to_phy(dev_priv, port); > + for_each_dsi_phy(phy, intel_dsi->phys) { > val &= ~ICL_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(phy); > val |= ICL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, > phy); > } > I915_WRITE(DPCLKA_CFGCR0_ICL, val); > > - for_each_dsi_port(port, intel_dsi->ports) { > - phy = intel_port_to_phy(dev_priv, port); > + for_each_dsi_phy(phy, intel_dsi->phys) { > val &= ~ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy); > } > I915_WRITE(DPCLKA_CFGCR0_ICL, val); > diff --git a/drivers/gpu/drm/i915/display/intel_combo_phy.c > b/drivers/gpu/drm/i915/display/intel_combo_phy.c > index d3d5244765e6..ac8218a040ab 100644 > --- a/drivers/gpu/drm/i915/display/intel_combo_phy.c > +++ b/drivers/gpu/drm/i915/display/intel_combo_phy.c > @@ -6,13 +6,13 @@ > #include "intel_combo_phy.h" > #include "intel_drv.h" > > -#define for_each_combo_port(__dev_priv, __port) \ > - for ((__port) = PORT_A; (__port) < I915_MAX_PORTS; (__port)++) > \ > - for_each_if(intel_port_is_combophy(__dev_priv, __port)) > +#define for_each_combo_phy(__dev_priv, __phy) \ > + for ((__phy) = PHY_A; (__phy) < I915_MAX_PHYS; (__phy)++) \ > + for_each_if(intel_phy_is_combo(__dev_priv, __phy)) > > -#define for_each_combo_port_reverse(__dev_priv, __port) \ > - for ((__port) = I915_MAX_PORTS; (__port)-- > PORT_A;) \ > - for_each_if(intel_port_is_combophy(__dev_priv, __port)) > +#define for_each_combo_phy_reverse(__dev_priv, __phy) \ > + for ((__phy) = I915_MAX_PHYS; (__phy)-- > PHY_A;) \ > + for_each_if(intel_phy_is_combo(__dev_priv, __phy)) > > enum { > PROCMON_0_85V_DOT_0, > @@ -38,18 +38,17 @@ static const struct cnl_procmon { > }; > > /* > - * CNL has just one set of registers, while ICL has two sets: one > for port A and > - * the other for port B. The CNL registers are equivalent to the ICL > port A > - * registers, that's why we call the ICL macros even though the > function has CNL > - * on its name. > + * CNL has just one set of registers, while gen11 has a set for each > combo PHY. > + * The CNL registers are equivalent to the gen11 PHY A registers, > that's why we > + * call the ICL macros even though the function has CNL on its name. > */ > static const struct cnl_procmon * > -cnl_get_procmon_ref_values(struct drm_i915_private *dev_priv, enum > port port) > +cnl_get_procmon_ref_values(struct drm_i915_private *dev_priv, enum > phy phy) > { > const struct cnl_procmon *procmon; > u32 val; > > - val = I915_READ(ICL_PORT_COMP_DW3(port)); > + val = I915_READ(ICL_PORT_COMP_DW3(phy)); > switch (val & (PROCESS_INFO_MASK | VOLTAGE_INFO_MASK)) { > default: > MISSING_CASE(val); > @@ -75,32 +74,32 @@ cnl_get_procmon_ref_values(struct > drm_i915_private *dev_priv, enum port port) > } > > static void cnl_set_procmon_ref_values(struct drm_i915_private > *dev_priv, > - enum port port) > + enum phy phy) > { > const struct cnl_procmon *procmon; > u32 val; > > - procmon = cnl_get_procmon_ref_values(dev_priv, port); > + procmon = cnl_get_procmon_ref_values(dev_priv, phy); > > - val = I915_READ(ICL_PORT_COMP_DW1(port)); > + val = I915_READ(ICL_PORT_COMP_DW1(phy)); > val &= ~((0xff << 16) | 0xff); > val |= procmon->dw1; > - I915_WRITE(ICL_PORT_COMP_DW1(port), val); > + I915_WRITE(ICL_PORT_COMP_DW1(phy), val); > > - I915_WRITE(ICL_PORT_COMP_DW9(port), procmon->dw9); > - I915_WRITE(ICL_PORT_COMP_DW10(port), procmon->dw10); > + I915_WRITE(ICL_PORT_COMP_DW9(phy), procmon->dw9); > + I915_WRITE(ICL_PORT_COMP_DW10(phy), procmon->dw10); > } > > static bool check_phy_reg(struct drm_i915_private *dev_priv, > - enum port port, i915_reg_t reg, u32 mask, > + enum phy phy, i915_reg_t reg, u32 mask, > u32 expected_val) > { > u32 val = I915_READ(reg); > > if ((val & mask) != expected_val) { > - DRM_DEBUG_DRIVER("Port %c combo PHY reg %08x state > mismatch: " > + DRM_DEBUG_DRIVER("Combo PHY %c reg %08x state mismatch: > " > "current %08x mask %08x expected > %08x\n", > - port_name(port), > + phy_name(phy), > reg.reg, val, mask, expected_val); > return false; > } > @@ -109,18 +108,18 @@ static bool check_phy_reg(struct > drm_i915_private *dev_priv, > } > > static bool cnl_verify_procmon_ref_values(struct drm_i915_private > *dev_priv, > - enum port port) > + enum phy phy) > { > const struct cnl_procmon *procmon; > bool ret; > > - procmon = cnl_get_procmon_ref_values(dev_priv, port); > + procmon = cnl_get_procmon_ref_values(dev_priv, phy); > > - ret = check_phy_reg(dev_priv, port, ICL_PORT_COMP_DW1(port), > + ret = check_phy_reg(dev_priv, phy, ICL_PORT_COMP_DW1(phy), > (0xff << 16) | 0xff, procmon->dw1); > - ret &= check_phy_reg(dev_priv, port, ICL_PORT_COMP_DW9(port), > + ret &= check_phy_reg(dev_priv, phy, ICL_PORT_COMP_DW9(phy), > -1U, procmon->dw9); > - ret &= check_phy_reg(dev_priv, port, ICL_PORT_COMP_DW10(port), > + ret &= check_phy_reg(dev_priv, phy, ICL_PORT_COMP_DW10(phy), > -1U, procmon->dw10); > > return ret; > @@ -134,15 +133,15 @@ static bool cnl_combo_phy_enabled(struct > drm_i915_private *dev_priv) > > static bool cnl_combo_phy_verify_state(struct drm_i915_private > *dev_priv) > { > - enum port port = PORT_A; > + enum phy phy = PHY_A; > bool ret; > > if (!cnl_combo_phy_enabled(dev_priv)) > return false; > > - ret = cnl_verify_procmon_ref_values(dev_priv, port); > + ret = cnl_verify_procmon_ref_values(dev_priv, phy); > > - ret &= check_phy_reg(dev_priv, port, CNL_PORT_CL1CM_DW5, > + ret &= check_phy_reg(dev_priv, phy, CNL_PORT_CL1CM_DW5, > CL_POWER_DOWN_ENABLE, > CL_POWER_DOWN_ENABLE); > > return ret; > @@ -157,7 +156,7 @@ static void cnl_combo_phys_init(struct > drm_i915_private *dev_priv) > I915_WRITE(CHICKEN_MISC_2, val); > > /* Dummy PORT_A to get the correct CNL register from the ICL > macro */ > - cnl_set_procmon_ref_values(dev_priv, PORT_A); > + cnl_set_procmon_ref_values(dev_priv, PHY_A); > > val = I915_READ(CNL_PORT_COMP_DW0); > val |= COMP_INIT; > @@ -181,39 +180,39 @@ static void cnl_combo_phys_uninit(struct > drm_i915_private *dev_priv) > } > > static bool icl_combo_phy_enabled(struct drm_i915_private *dev_priv, > - enum port port) > + enum phy phy) > { > /* The PHY C added by EHL has no PHY_MISC register */ > - if (IS_ELKHARTLAKE(dev_priv) && port == PORT_C) > - return I915_READ(ICL_PORT_COMP_DW0(port)) & COMP_INIT; > + if (IS_ELKHARTLAKE(dev_priv) && phy == PHY_C) > + return I915_READ(ICL_PORT_COMP_DW0(phy)) & COMP_INIT; > else > - return !(I915_READ(ICL_PHY_MISC(port)) & > + return !(I915_READ(ICL_PHY_MISC(phy)) & > ICL_PHY_MISC_DE_IO_COMP_PWR_DOWN) && > - (I915_READ(ICL_PORT_COMP_DW0(port)) & > COMP_INIT); > + (I915_READ(ICL_PORT_COMP_DW0(phy)) & > COMP_INIT); > } > > static bool icl_combo_phy_verify_state(struct drm_i915_private > *dev_priv, > - enum port port) > + enum phy phy) > { > bool ret; > > - if (!icl_combo_phy_enabled(dev_priv, port)) > + if (!icl_combo_phy_enabled(dev_priv, phy)) > return false; > > - ret = cnl_verify_procmon_ref_values(dev_priv, port); > + ret = cnl_verify_procmon_ref_values(dev_priv, phy); > > - if (port == PORT_A) > - ret &= check_phy_reg(dev_priv, port, > ICL_PORT_COMP_DW8(port), > + if (phy == PHY_A) > + ret &= check_phy_reg(dev_priv, phy, > ICL_PORT_COMP_DW8(phy), > IREFGEN, IREFGEN); > > - ret &= check_phy_reg(dev_priv, port, ICL_PORT_CL_DW5(port), > + ret &= check_phy_reg(dev_priv, phy, ICL_PORT_CL_DW5(phy), > CL_POWER_DOWN_ENABLE, > CL_POWER_DOWN_ENABLE); > > return ret; > } > > void intel_combo_phy_power_up_lanes(struct drm_i915_private > *dev_priv, > - enum port port, bool is_dsi, > + enum phy phy, bool is_dsi, > int lane_count, bool lane_reversal) > { > u8 lane_mask; > @@ -258,10 +257,10 @@ void intel_combo_phy_power_up_lanes(struct > drm_i915_private *dev_priv, > } > } > > - val = I915_READ(ICL_PORT_CL_DW10(port)); > + val = I915_READ(ICL_PORT_CL_DW10(phy)); > val &= ~PWR_DOWN_LN_MASK; > val |= lane_mask << PWR_DOWN_LN_SHIFT; > - I915_WRITE(ICL_PORT_CL_DW10(port), val); > + I915_WRITE(ICL_PORT_CL_DW10(phy), val); > } > > static u32 ehl_combo_phy_a_mux(struct drm_i915_private *i915, u32 > val) > @@ -292,14 +291,14 @@ static u32 ehl_combo_phy_a_mux(struct > drm_i915_private *i915, u32 val) > > static void icl_combo_phys_init(struct drm_i915_private *dev_priv) > { > - enum port port; > + enum phy phy; > > - for_each_combo_port(dev_priv, port) { > + for_each_combo_phy(dev_priv, phy) { > u32 val; > > - if (icl_combo_phy_verify_state(dev_priv, port)) { > - DRM_DEBUG_DRIVER("Port %c combo PHY already > enabled, won't reprogram it.\n", > - port_name(port)); > + if (icl_combo_phy_verify_state(dev_priv, phy)) { > + DRM_DEBUG_DRIVER("Combo PHY %c already enabled, > won't reprogram it.\n", > + phy_name(phy)); > continue; > } > > @@ -308,7 +307,7 @@ static void icl_combo_phys_init(struct > drm_i915_private *dev_priv) > * register for it and no need to program the > * DE_IO_COMP_PWR_DOWN setting on PHY C. > */ > - if (IS_ELKHARTLAKE(dev_priv) && port == PORT_C) > + if (IS_ELKHARTLAKE(dev_priv) && phy == PHY_C) > goto skip_phy_misc; > > /* > @@ -319,59 +318,59 @@ static void icl_combo_phys_init(struct > drm_i915_private *dev_priv) > * based on whether our VBT indicates the presence of > any > * "internal" child devices. > */ > - val = I915_READ(ICL_PHY_MISC(port)); > - if (IS_ELKHARTLAKE(dev_priv) && port == PORT_A) > + val = I915_READ(ICL_PHY_MISC(phy)); > + if (IS_ELKHARTLAKE(dev_priv) && phy == PHY_A) > val = ehl_combo_phy_a_mux(dev_priv, val); > val &= ~ICL_PHY_MISC_DE_IO_COMP_PWR_DOWN; > - I915_WRITE(ICL_PHY_MISC(port), val); > + I915_WRITE(ICL_PHY_MISC(phy), val); > > skip_phy_misc: > - cnl_set_procmon_ref_values(dev_priv, port); > + cnl_set_procmon_ref_values(dev_priv, phy); > > - if (port == PORT_A) { > - val = I915_READ(ICL_PORT_COMP_DW8(port)); > + if (phy == PHY_A) { > + val = I915_READ(ICL_PORT_COMP_DW8(phy)); > val |= IREFGEN; > - I915_WRITE(ICL_PORT_COMP_DW8(port), val); > + I915_WRITE(ICL_PORT_COMP_DW8(phy), val); > } > > - val = I915_READ(ICL_PORT_COMP_DW0(port)); > + val = I915_READ(ICL_PORT_COMP_DW0(phy)); > val |= COMP_INIT; > - I915_WRITE(ICL_PORT_COMP_DW0(port), val); > + I915_WRITE(ICL_PORT_COMP_DW0(phy), val); > > - val = I915_READ(ICL_PORT_CL_DW5(port)); > + val = I915_READ(ICL_PORT_CL_DW5(phy)); > val |= CL_POWER_DOWN_ENABLE; > - I915_WRITE(ICL_PORT_CL_DW5(port), val); > + I915_WRITE(ICL_PORT_CL_DW5(phy), val); > } > } > > static void icl_combo_phys_uninit(struct drm_i915_private *dev_priv) > { > - enum port port; > + enum phy phy; > > - for_each_combo_port_reverse(dev_priv, port) { > + for_each_combo_phy_reverse(dev_priv, phy) { > u32 val; > > - if (port == PORT_A && > - !icl_combo_phy_verify_state(dev_priv, port)) > - DRM_WARN("Port %c combo PHY HW state changed > unexpectedly\n", > - port_name(port)); > + if (phy == PHY_A && > + !icl_combo_phy_verify_state(dev_priv, phy)) > + DRM_WARN("Combo PHY %c HW state changed > unexpectedly\n", > + phy_name(phy)); > > /* > * Although EHL adds a combo PHY C, there's no PHY_MISC > * register for it and no need to program the > * DE_IO_COMP_PWR_DOWN setting on PHY C. > */ > - if (IS_ELKHARTLAKE(dev_priv) && port == PORT_C) > + if (IS_ELKHARTLAKE(dev_priv) && phy == PHY_C) > goto skip_phy_misc; > > - val = I915_READ(ICL_PHY_MISC(port)); > + val = I915_READ(ICL_PHY_MISC(phy)); > val |= ICL_PHY_MISC_DE_IO_COMP_PWR_DOWN; > - I915_WRITE(ICL_PHY_MISC(port), val); > + I915_WRITE(ICL_PHY_MISC(phy), val); > > skip_phy_misc: > - val = I915_READ(ICL_PORT_COMP_DW0(port)); > + val = I915_READ(ICL_PORT_COMP_DW0(phy)); > val &= ~COMP_INIT; > - I915_WRITE(ICL_PORT_COMP_DW0(port), val); > + I915_WRITE(ICL_PORT_COMP_DW0(phy), val); > } > } > > diff --git a/drivers/gpu/drm/i915/display/intel_combo_phy.h > b/drivers/gpu/drm/i915/display/intel_combo_phy.h > index e6e195a83b19..80a1386b4c87 100644 > --- a/drivers/gpu/drm/i915/display/intel_combo_phy.h > +++ b/drivers/gpu/drm/i915/display/intel_combo_phy.h > @@ -10,11 +10,12 @@ > #include <drm/i915_drm.h> Nit: This include can be removed as it was here only to get the definition of enum port. Other than that look good, I did not found any other register missing conversion. Reviewed-by: José Roberto de Souza <jose.souza@xxxxxxxxx> > > struct drm_i915_private; > +enum phy; > > void intel_combo_phy_init(struct drm_i915_private *dev_priv); > void intel_combo_phy_uninit(struct drm_i915_private *dev_priv); > void intel_combo_phy_power_up_lanes(struct drm_i915_private > *dev_priv, > - enum port port, bool is_dsi, > + enum phy phy, bool is_dsi, > int lane_count, bool > lane_reversal); > > #endif /* __INTEL_COMBO_PHY_H__ */ > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > b/drivers/gpu/drm/i915/display/intel_ddi.c > index a40a53527d99..50dd9d731456 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -2414,7 +2414,7 @@ static void cnl_ddi_vswing_sequence(struct > intel_encoder *encoder, > } > > static void icl_ddi_combo_vswing_program(struct drm_i915_private > *dev_priv, > - u32 level, enum port port, int > type, > + u32 level, enum phy phy, int > type, > int rate) > { > const struct cnl_ddi_buf_trans *ddi_translations = NULL; > @@ -2432,41 +2432,41 @@ static void > icl_ddi_combo_vswing_program(struct drm_i915_private *dev_priv, > } > > /* Set PORT_TX_DW5 */ > - val = I915_READ(ICL_PORT_TX_DW5_LN0(port)); > + val = I915_READ(ICL_PORT_TX_DW5_LN0(phy)); > val &= ~(SCALING_MODE_SEL_MASK | RTERM_SELECT_MASK | > TAP2_DISABLE | TAP3_DISABLE); > val |= SCALING_MODE_SEL(0x2); > val |= RTERM_SELECT(0x6); > val |= TAP3_DISABLE; > - I915_WRITE(ICL_PORT_TX_DW5_GRP(port), val); > + I915_WRITE(ICL_PORT_TX_DW5_GRP(phy), val); > > /* Program PORT_TX_DW2 */ > - val = I915_READ(ICL_PORT_TX_DW2_LN0(port)); > + val = I915_READ(ICL_PORT_TX_DW2_LN0(phy)); > val &= ~(SWING_SEL_LOWER_MASK | SWING_SEL_UPPER_MASK | > RCOMP_SCALAR_MASK); > val |= SWING_SEL_UPPER(ddi_translations[level].dw2_swing_sel); > val |= SWING_SEL_LOWER(ddi_translations[level].dw2_swing_sel); > /* Program Rcomp scalar for every table entry */ > val |= RCOMP_SCALAR(0x98); > - I915_WRITE(ICL_PORT_TX_DW2_GRP(port), val); > + I915_WRITE(ICL_PORT_TX_DW2_GRP(phy), val); > > /* Program PORT_TX_DW4 */ > /* We cannot write to GRP. It would overwrite individual > loadgen. */ > for (ln = 0; ln <= 3; ln++) { > - val = I915_READ(ICL_PORT_TX_DW4_LN(ln, port)); > + val = I915_READ(ICL_PORT_TX_DW4_LN(ln, phy)); > val &= ~(POST_CURSOR_1_MASK | POST_CURSOR_2_MASK | > CURSOR_COEFF_MASK); > val |= > POST_CURSOR_1(ddi_translations[level].dw4_post_cursor_1); > val |= > POST_CURSOR_2(ddi_translations[level].dw4_post_cursor_2); > val |= > CURSOR_COEFF(ddi_translations[level].dw4_cursor_coeff); > - I915_WRITE(ICL_PORT_TX_DW4_LN(ln, port), val); > + I915_WRITE(ICL_PORT_TX_DW4_LN(ln, phy), val); > } > > /* Program PORT_TX_DW7 */ > - val = I915_READ(ICL_PORT_TX_DW7_LN0(port)); > + val = I915_READ(ICL_PORT_TX_DW7_LN0(phy)); > val &= ~N_SCALAR_MASK; > val |= N_SCALAR(ddi_translations[level].dw7_n_scalar); > - I915_WRITE(ICL_PORT_TX_DW7_GRP(port), val); > + I915_WRITE(ICL_PORT_TX_DW7_GRP(phy), val); > } > > static void icl_combo_phy_ddi_vswing_sequence(struct intel_encoder > *encoder, > @@ -2474,7 +2474,7 @@ static void > icl_combo_phy_ddi_vswing_sequence(struct intel_encoder *encoder, > enum intel_output_type > type) > { > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > - enum port port = encoder->port; > + enum phy phy = intel_port_to_phy(dev_priv, encoder->port); > int width = 0; > int rate = 0; > u32 val; > @@ -2495,12 +2495,12 @@ static void > icl_combo_phy_ddi_vswing_sequence(struct intel_encoder *encoder, > * set PORT_PCS_DW1 cmnkeeper_enable to 1b, > * else clear to 0b. > */ > - val = I915_READ(ICL_PORT_PCS_DW1_LN0(port)); > + val = I915_READ(ICL_PORT_PCS_DW1_LN0(phy)); > if (type == INTEL_OUTPUT_HDMI) > val &= ~COMMON_KEEPER_EN; > else > val |= COMMON_KEEPER_EN; > - I915_WRITE(ICL_PORT_PCS_DW1_GRP(port), val); > + I915_WRITE(ICL_PORT_PCS_DW1_GRP(phy), val); > > /* 2. Program loadgen select */ > /* > @@ -2510,33 +2510,33 @@ static void > icl_combo_phy_ddi_vswing_sequence(struct intel_encoder *encoder, > * > 6 GHz (LN0=0, LN1=0, LN2=0, LN3=0) > */ > for (ln = 0; ln <= 3; ln++) { > - val = I915_READ(ICL_PORT_TX_DW4_LN(ln, port)); > + val = I915_READ(ICL_PORT_TX_DW4_LN(ln, phy)); > val &= ~LOADGEN_SELECT; > > if ((rate <= 600000 && width == 4 && ln >= 1) || > (rate <= 600000 && width < 4 && (ln == 1 || ln == > 2))) { > val |= LOADGEN_SELECT; > } > - I915_WRITE(ICL_PORT_TX_DW4_LN(ln, port), val); > + I915_WRITE(ICL_PORT_TX_DW4_LN(ln, phy), val); > } > > /* 3. Set PORT_CL_DW5 SUS Clock Config to 11b */ > - val = I915_READ(ICL_PORT_CL_DW5(port)); > + val = I915_READ(ICL_PORT_CL_DW5(phy)); > val |= SUS_CLOCK_CONFIG; > - I915_WRITE(ICL_PORT_CL_DW5(port), val); > + I915_WRITE(ICL_PORT_CL_DW5(phy), val); > > /* 4. Clear training enable to change swing values */ > - val = I915_READ(ICL_PORT_TX_DW5_LN0(port)); > + val = I915_READ(ICL_PORT_TX_DW5_LN0(phy)); > val &= ~TX_TRAINING_EN; > - I915_WRITE(ICL_PORT_TX_DW5_GRP(port), val); > + I915_WRITE(ICL_PORT_TX_DW5_GRP(phy), val); > > /* 5. Program swing and de-emphasis */ > - icl_ddi_combo_vswing_program(dev_priv, level, port, type, > rate); > + icl_ddi_combo_vswing_program(dev_priv, level, phy, type, rate); > > /* 6. Set training enable to trigger update */ > - val = I915_READ(ICL_PORT_TX_DW5_LN0(port)); > + val = I915_READ(ICL_PORT_TX_DW5_LN0(phy)); > val |= TX_TRAINING_EN; > - I915_WRITE(ICL_PORT_TX_DW5_GRP(port), val); > + I915_WRITE(ICL_PORT_TX_DW5_GRP(phy), val); > } > > static void icl_mg_phy_ddi_vswing_sequence(struct intel_encoder > *encoder, > @@ -3120,6 +3120,7 @@ static void intel_ddi_pre_enable_dp(struct > intel_encoder *encoder, > struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); > struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > enum port port = encoder->port; > + enum phy phy = intel_port_to_phy(dev_priv, port); > struct intel_digital_port *dig_port = enc_to_dig_port(&encoder- > >base); > bool is_mst = intel_crtc_has_type(crtc_state, > INTEL_OUTPUT_DP_MST); > int level = intel_ddi_dp_level(intel_dp); > @@ -3155,7 +3156,7 @@ static void intel_ddi_pre_enable_dp(struct > intel_encoder *encoder, > bool lane_reversal = > dig_port->saved_port_bits & > DDI_BUF_PORT_REVERSAL; > > - intel_combo_phy_power_up_lanes(dev_priv, port, false, > + intel_combo_phy_power_up_lanes(dev_priv, phy, false, > crtc_state->lane_count, > lane_reversal); > } > diff --git a/drivers/gpu/drm/i915/display/intel_display.h > b/drivers/gpu/drm/i915/display/intel_display.h > index d53285fb883f..8a4a57ef82a2 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.h > +++ b/drivers/gpu/drm/i915/display/intel_display.h > @@ -268,6 +268,10 @@ enum phy { > for ((__port) = PORT_A; (__port) < I915_MAX_PORTS; (__port)++) > \ > for_each_if((__ports_mask) & BIT(__port)) > > +#define for_each_phy_masked(__phy, __phys_mask) \ > + for ((__phy) = PHY_A; (__phy) < I915_MAX_PHYS; (__phy)++) \ > + for_each_if((__phys_mask) & BIT(__phy)) > + > #define for_each_crtc(dev, crtc) \ > list_for_each_entry(crtc, &(dev)->mode_config.crtc_list, head) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > b/drivers/gpu/drm/i915/display/intel_display_power.c > index c19b958461ca..64627c117c31 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > @@ -395,7 +395,7 @@ static void hsw_power_well_disable(struct > drm_i915_private *dev_priv, > hsw_wait_for_power_well_disable(dev_priv, power_well); > } > > -#define ICL_AUX_PW_TO_PORT(pw_idx) ((pw_idx) - > ICL_PW_CTL_IDX_AUX_A) > +#define ICL_AUX_PW_TO_PHY(pw_idx) ((pw_idx) - > ICL_PW_CTL_IDX_AUX_A) > > static void > icl_combo_phy_aux_power_well_enable(struct drm_i915_private > *dev_priv, > @@ -403,21 +403,21 @@ icl_combo_phy_aux_power_well_enable(struct > drm_i915_private *dev_priv, > { > const struct i915_power_well_regs *regs = power_well->desc- > >hsw.regs; > int pw_idx = power_well->desc->hsw.idx; > - enum port port = ICL_AUX_PW_TO_PORT(pw_idx); > + enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx); > u32 val; > > val = I915_READ(regs->driver); > I915_WRITE(regs->driver, val | HSW_PWR_WELL_CTL_REQ(pw_idx)); > > - val = I915_READ(ICL_PORT_CL_DW12(port)); > - I915_WRITE(ICL_PORT_CL_DW12(port), val | ICL_LANE_ENABLE_AUX); > + val = I915_READ(ICL_PORT_CL_DW12(phy)); > + I915_WRITE(ICL_PORT_CL_DW12(phy), val | ICL_LANE_ENABLE_AUX); > > hsw_wait_for_power_well_enable(dev_priv, power_well); > > /* Display WA #1178: icl */ > if (IS_ICELAKE(dev_priv) && > pw_idx >= ICL_PW_CTL_IDX_AUX_A && pw_idx <= > ICL_PW_CTL_IDX_AUX_B && > - !intel_bios_is_port_edp(dev_priv, port)) { > + !intel_bios_is_port_edp(dev_priv, (enum port)phy)) { > val = I915_READ(ICL_AUX_ANAOVRD1(pw_idx)); > val |= ICL_AUX_ANAOVRD1_ENABLE | > ICL_AUX_ANAOVRD1_LDO_BYPASS; > I915_WRITE(ICL_AUX_ANAOVRD1(pw_idx), val); > @@ -430,11 +430,11 @@ icl_combo_phy_aux_power_well_disable(struct > drm_i915_private *dev_priv, > { > const struct i915_power_well_regs *regs = power_well->desc- > >hsw.regs; > int pw_idx = power_well->desc->hsw.idx; > - enum port port = ICL_AUX_PW_TO_PORT(pw_idx); > + enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx); > u32 val; > > - val = I915_READ(ICL_PORT_CL_DW12(port)); > - I915_WRITE(ICL_PORT_CL_DW12(port), val & ~ICL_LANE_ENABLE_AUX); > + val = I915_READ(ICL_PORT_CL_DW12(phy)); > + I915_WRITE(ICL_PORT_CL_DW12(phy), val & ~ICL_LANE_ENABLE_AUX); > > val = I915_READ(regs->driver); > I915_WRITE(regs->driver, val & ~HSW_PWR_WELL_CTL_REQ(pw_idx)); > diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h > b/drivers/gpu/drm/i915/display/intel_dsi.h > index 6d20434636cd..1cd24bd46518 100644 > --- a/drivers/gpu/drm/i915/display/intel_dsi.h > +++ b/drivers/gpu/drm/i915/display/intel_dsi.h > @@ -49,8 +49,11 @@ struct intel_dsi { > > struct intel_connector *attached_connector; > > - /* bit mask of ports being driven */ > - u16 ports; > + /* bit mask of ports (vlv dsi) or phys (icl dsi) being driven > */ > + union { > + u16 ports; /* VLV DSI */ > + u16 phys; /* ICL DSI */ > + }; > > /* if true, use HS mode, otherwise LP */ > bool hs; > @@ -132,7 +135,10 @@ static inline struct intel_dsi_host > *to_intel_dsi_host(struct mipi_dsi_host *h) > return container_of(h, struct intel_dsi_host, base); > } > > -#define for_each_dsi_port(__port, __ports_mask) > for_each_port_masked(__port, __ports_mask) > +#define for_each_dsi_port(__port, __ports_mask) \ > + for_each_port_masked(__port, __ports_mask) > +#define for_each_dsi_phy(__phy, __phys_mask) \ > + for_each_phy_masked(__phy, __phys_mask) > > static inline struct intel_dsi *enc_to_intel_dsi(struct drm_encoder > *encoder) > { > diff --git a/drivers/gpu/drm/i915/i915_reg.h > b/drivers/gpu/drm/i915/i915_reg.h > index c9e2e09b6f01..b766ba22045b 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -1794,20 +1794,20 @@ enum i915_power_well_id { > #define _ICL_COMBOPHY_A 0x162000 > #define _ICL_COMBOPHY_B 0x6C000 > #define _EHL_COMBOPHY_C 0x160000 > -#define _ICL_COMBOPHY(port) _PICK(port, _ICL_COMBOPHY_A, \ > +#define _ICL_COMBOPHY(phy) _PICK(phy, _ICL_COMBOPHY_A, \ > _ICL_COMBOPHY_B, \ > _EHL_COMBOPHY_C) > > /* CNL/ICL Port CL_DW registers */ > -#define _ICL_PORT_CL_DW(dw, port) (_ICL_COMBOPHY(port) + \ > +#define _ICL_PORT_CL_DW(dw, phy) (_ICL_COMBOPHY(phy) + \ > 4 * (dw)) > > #define CNL_PORT_CL1CM_DW5 _MMIO(0x162014) > -#define ICL_PORT_CL_DW5(port) _MMIO(_ICL_PORT_CL_DW(5 > , port)) > +#define ICL_PORT_CL_DW5(phy) _MMIO(_ICL_PORT_CL_DW(5, phy)) > #define CL_POWER_DOWN_ENABLE (1 << 4) > #define SUS_CLOCK_CONFIG (3 << 0) > > -#define ICL_PORT_CL_DW10(port) _MMIO(_ICL_PORT_CL_DW(1 > 0, port)) > +#define ICL_PORT_CL_DW10(phy) _MMIO(_ICL_PORT_CL_DW(1 > 0, phy)) > #define PG_SEQ_DELAY_OVERRIDE_MASK (3 << 25) > #define PG_SEQ_DELAY_OVERRIDE_SHIFT 25 > #define PG_SEQ_DELAY_OVERRIDE_ENABLE (1 << 24) > @@ -1822,23 +1822,23 @@ enum i915_power_well_id { > #define PWR_DOWN_LN_MASK (0xf << 4) > #define PWR_DOWN_LN_SHIFT 4 > > -#define ICL_PORT_CL_DW12(port) _MMIO(_ICL_PORT_CL_DW(1 > 2, port)) > +#define ICL_PORT_CL_DW12(phy) _MMIO(_ICL_PORT_CL_DW(1 > 2, phy)) > #define ICL_LANE_ENABLE_AUX (1 << 0) > > /* CNL/ICL Port COMP_DW registers */ > #define _ICL_PORT_COMP 0x100 > -#define _ICL_PORT_COMP_DW(dw, port) (_ICL_COMBOPHY(port) + \ > +#define _ICL_PORT_COMP_DW(dw, phy) (_ICL_COMBOPHY(phy) + \ > _ICL_PORT_COMP + 4 * (dw)) > > #define CNL_PORT_COMP_DW0 _MMIO(0x162100) > -#define ICL_PORT_COMP_DW0(port) _MMIO(_ICL_PORT_COMP_DW > (0, port)) > +#define ICL_PORT_COMP_DW0(phy) _MMIO(_ICL_PORT_COMP_DW > (0, phy)) > #define COMP_INIT (1 << 31) > > #define CNL_PORT_COMP_DW1 _MMIO(0x162104) > -#define ICL_PORT_COMP_DW1(port) _MMIO(_ICL_PORT_COMP_DW > (1, port)) > +#define ICL_PORT_COMP_DW1(phy) _MMIO(_ICL_PORT_COMP_DW > (1, phy)) > > #define CNL_PORT_COMP_DW3 _MMIO(0x16210c) > -#define ICL_PORT_COMP_DW3(port) _MMIO(_ICL_PORT_COMP_DW > (3, port)) > +#define ICL_PORT_COMP_DW3(phy) _MMIO(_ICL_PORT_COMP_DW > (3, phy)) > #define PROCESS_INFO_DOT_0 (0 << 26) > #define PROCESS_INFO_DOT_1 (1 << 26) > #define PROCESS_INFO_DOT_4 (2 << 26) > @@ -1850,14 +1850,14 @@ enum i915_power_well_id { > #define VOLTAGE_INFO_MASK (3 << 24) > #define VOLTAGE_INFO_SHIFT 24 > > -#define ICL_PORT_COMP_DW8(port) _MMIO(_ICL_PORT_COMP_DW > (8, port)) > +#define ICL_PORT_COMP_DW8(phy) _MMIO(_ICL_PORT_COMP_DW > (8, phy)) > #define IREFGEN (1 << 24) > > #define CNL_PORT_COMP_DW9 _MMIO(0x162124) > -#define ICL_PORT_COMP_DW9(port) _MMIO(_ICL_PORT_COMP_DW > (9, port)) > +#define ICL_PORT_COMP_DW9(phy) _MMIO(_ICL_PORT_COMP_DW > (9, phy)) > > #define CNL_PORT_COMP_DW10 _MMIO(0x162128) > -#define ICL_PORT_COMP_DW10(port) _MMIO(_ICL_PORT_COMP_DW(10, > port)) > +#define ICL_PORT_COMP_DW10(phy) _MMIO(_ICL_PORT_COMP_DW > (10, phy)) > > /* CNL/ICL Port PCS registers */ > #define _CNL_PORT_PCS_DW1_GRP_AE 0x162304 > @@ -1870,14 +1870,14 @@ enum i915_power_well_id { > #define _CNL_PORT_PCS_DW1_LN0_C 0x162C04 > #define _CNL_PORT_PCS_DW1_LN0_D 0x162E04 > #define _CNL_PORT_PCS_DW1_LN0_F 0x162804 > -#define CNL_PORT_PCS_DW1_GRP(port) _MMIO(_PICK(port, \ > +#define CNL_PORT_PCS_DW1_GRP(phy) _MMIO(_PICK(phy, \ > _CNL_PORT_PCS_DW1_G > RP_AE, \ > _CNL_PORT_PCS_DW1_G > RP_B, \ > _CNL_PORT_PCS_DW1_G > RP_C, \ > _CNL_PORT_PCS_DW1_G > RP_D, \ > _CNL_PORT_PCS_DW1_G > RP_AE, \ > _CNL_PORT_PCS_DW1_G > RP_F)) > -#define CNL_PORT_PCS_DW1_LN0(port) _MMIO(_PICK(port, \ > +#define CNL_PORT_PCS_DW1_LN0(phy) _MMIO(_PICK(phy, \ > _CNL_PORT_PCS_DW1_L > N0_AE, \ > _CNL_PORT_PCS_DW1_L > N0_B, \ > _CNL_PORT_PCS_DW1_L > N0_C, \ > @@ -1888,15 +1888,15 @@ enum i915_power_well_id { > #define _ICL_PORT_PCS_AUX 0x300 > #define _ICL_PORT_PCS_GRP 0x600 > #define _ICL_PORT_PCS_LN(ln) (0x800 + (ln) * 0x100) > -#define _ICL_PORT_PCS_DW_AUX(dw, port) (_ICL_COMBOPHY(port) + > \ > +#define _ICL_PORT_PCS_DW_AUX(dw, phy) (_ICL_COMBOPHY(phy) + \ > _ICL_PORT_PCS_AUX + 4 * (dw)) > -#define _ICL_PORT_PCS_DW_GRP(dw, port) (_ICL_COMBOPHY(port) + > \ > +#define _ICL_PORT_PCS_DW_GRP(dw, phy) (_ICL_COMBOPHY(phy) + \ > _ICL_PORT_PCS_GRP + 4 * (dw)) > -#define _ICL_PORT_PCS_DW_LN(dw, ln, port) (_ICL_COMBOPHY(port) + \ > +#define _ICL_PORT_PCS_DW_LN(dw, ln, phy) (_ICL_COMBOPHY(phy) + \ > _ICL_PORT_PCS_LN(ln) + 4 * > (dw)) > -#define ICL_PORT_PCS_DW1_AUX(port) _MMIO(_ICL_PORT_PCS_DW_AUX(1, > port)) > -#define ICL_PORT_PCS_DW1_GRP(port) _MMIO(_ICL_PORT_PCS_DW_GRP(1, > port)) > -#define ICL_PORT_PCS_DW1_LN0(port) _MMIO(_ICL_PORT_PCS_DW_LN(1, 0, > port)) > +#define ICL_PORT_PCS_DW1_AUX(phy) _MMIO(_ICL_PORT_PCS_DW_AUX(1, > phy)) > +#define ICL_PORT_PCS_DW1_GRP(phy) _MMIO(_ICL_PORT_PCS_DW_GRP(1, > phy)) > +#define ICL_PORT_PCS_DW1_LN0(phy) _MMIO(_ICL_PORT_PCS_DW_LN(1, 0, > phy)) > #define COMMON_KEEPER_EN (1 << 26) > #define LATENCY_OPTIM_MASK (0x3 << 2) > #define LATENCY_OPTIM_VAL(x) ((x) << 2) > @@ -1933,18 +1933,18 @@ enum i915_power_well_id { > #define _ICL_PORT_TX_GRP 0x680 > #define _ICL_PORT_TX_LN(ln) (0x880 + (ln) * 0x100) > > -#define _ICL_PORT_TX_DW_AUX(dw, port) (_ICL_COMBOPHY(port) + > \ > +#define _ICL_PORT_TX_DW_AUX(dw, phy) (_ICL_COMBOPHY(phy) + \ > _ICL_PORT_TX_AUX + 4 * (dw)) > -#define _ICL_PORT_TX_DW_GRP(dw, port) (_ICL_COMBOPHY(port) + > \ > +#define _ICL_PORT_TX_DW_GRP(dw, phy) (_ICL_COMBOPHY(phy) + \ > _ICL_PORT_TX_GRP + 4 * (dw)) > -#define _ICL_PORT_TX_DW_LN(dw, ln, port) (_ICL_COMBOPHY(port) + \ > +#define _ICL_PORT_TX_DW_LN(dw, ln, phy) (_ICL_COMBOPHY(phy) + \ > _ICL_PORT_TX_LN(ln) + 4 * > (dw)) > > #define CNL_PORT_TX_DW2_GRP(port) _MMIO(_CNL_PORT_TX_DW_GRP(2, > port)) > #define CNL_PORT_TX_DW2_LN0(port) _MMIO(_CNL_PORT_TX_DW_LN0(2, > port)) > -#define ICL_PORT_TX_DW2_AUX(port) _MMIO(_ICL_PORT_TX_DW_AUX(2, > port)) > -#define ICL_PORT_TX_DW2_GRP(port) _MMIO(_ICL_PORT_TX_DW_GRP(2, > port)) > -#define ICL_PORT_TX_DW2_LN0(port) _MMIO(_ICL_PORT_TX_DW_LN(2, 0, > port)) > +#define ICL_PORT_TX_DW2_AUX(phy) _MMIO(_ICL_PORT_TX_DW_AUX(2, > phy)) > +#define ICL_PORT_TX_DW2_GRP(phy) _MMIO(_ICL_PORT_TX_DW_GRP(2, > phy)) > +#define ICL_PORT_TX_DW2_LN0(phy) _MMIO(_ICL_PORT_TX_DW_LN(2, 0, > phy)) > #define SWING_SEL_UPPER(x) (((x) >> 3) << 15) > #define SWING_SEL_UPPER_MASK (1 << 15) > #define SWING_SEL_LOWER(x) (((x) & 0x7) << 11) > @@ -1961,10 +1961,10 @@ enum i915_power_well_id { > #define CNL_PORT_TX_DW4_LN(ln, port) _MMIO(_CNL_PORT_TX_DW_LN0(4, > (port)) + \ > ((ln) * > (_CNL_PORT_TX_DW4_LN1_AE - \ > _CNL_PORT_TX_DW4_LN > 0_AE))) > -#define ICL_PORT_TX_DW4_AUX(port) _MMIO(_ICL_PORT_TX_DW_AUX(4, > port)) > -#define ICL_PORT_TX_DW4_GRP(port) _MMIO(_ICL_PORT_TX_DW_GRP(4, > port)) > -#define ICL_PORT_TX_DW4_LN0(port) _MMIO(_ICL_PORT_TX_DW_LN(4, 0, > port)) > -#define ICL_PORT_TX_DW4_LN(ln, port) _MMIO(_ICL_PORT_TX_DW_LN(4, ln, > port)) > +#define ICL_PORT_TX_DW4_AUX(phy) _MMIO(_ICL_PORT_TX_DW_AUX(4, > phy)) > +#define ICL_PORT_TX_DW4_GRP(phy) _MMIO(_ICL_PORT_TX_DW_GRP(4, > phy)) > +#define ICL_PORT_TX_DW4_LN0(phy) _MMIO(_ICL_PORT_TX_DW_LN(4, 0, > phy)) > +#define ICL_PORT_TX_DW4_LN(ln, phy) _MMIO(_ICL_PORT_TX_DW_LN(4, ln, > phy)) > #define LOADGEN_SELECT (1 << 31) > #define POST_CURSOR_1(x) ((x) << 12) > #define POST_CURSOR_1_MASK (0x3F << 12) > @@ -1975,9 +1975,9 @@ enum i915_power_well_id { > > #define CNL_PORT_TX_DW5_GRP(port) _MMIO(_CNL_PORT_TX_DW_GRP(5, > port)) > #define CNL_PORT_TX_DW5_LN0(port) _MMIO(_CNL_PORT_TX_DW_LN0(5, > port)) > -#define ICL_PORT_TX_DW5_AUX(port) _MMIO(_ICL_PORT_TX_DW_AUX(5, > port)) > -#define ICL_PORT_TX_DW5_GRP(port) _MMIO(_ICL_PORT_TX_DW_GRP(5, > port)) > -#define ICL_PORT_TX_DW5_LN0(port) _MMIO(_ICL_PORT_TX_DW_LN(5, 0, > port)) > +#define ICL_PORT_TX_DW5_AUX(phy) _MMIO(_ICL_PORT_TX_DW_AUX(5, > phy)) > +#define ICL_PORT_TX_DW5_GRP(phy) _MMIO(_ICL_PORT_TX_DW_GRP(5, > phy)) > +#define ICL_PORT_TX_DW5_LN0(phy) _MMIO(_ICL_PORT_TX_DW_LN(5, 0, > phy)) > #define TX_TRAINING_EN (1 << 31) > #define TAP2_DISABLE (1 << 30) > #define TAP3_DISABLE (1 << 29) > @@ -1988,10 +1988,10 @@ enum i915_power_well_id { > > #define CNL_PORT_TX_DW7_GRP(port) _MMIO(_CNL_PORT_TX_DW_GRP(7, > (port))) > #define CNL_PORT_TX_DW7_LN0(port) _MMIO(_CNL_PORT_TX_DW_LN0(7, > (port))) > -#define ICL_PORT_TX_DW7_AUX(port) _MMIO(_ICL_PORT_TX_DW_AUX(7, > port)) > -#define ICL_PORT_TX_DW7_GRP(port) _MMIO(_ICL_PORT_TX_DW_GRP(7, > port)) > -#define ICL_PORT_TX_DW7_LN0(port) _MMIO(_ICL_PORT_TX_DW_LN(7, 0, > port)) > -#define ICL_PORT_TX_DW7_LN(ln, port) _MMIO(_ICL_PORT_TX_DW_LN(7, ln, > port)) > +#define ICL_PORT_TX_DW7_AUX(phy) _MMIO(_ICL_PORT_TX_DW_AUX(7, > phy)) > +#define ICL_PORT_TX_DW7_GRP(phy) _MMIO(_ICL_PORT_TX_DW_GRP(7, > phy)) > +#define ICL_PORT_TX_DW7_LN0(phy) _MMIO(_ICL_PORT_TX_DW_LN(7, 0, > phy)) > +#define ICL_PORT_TX_DW7_LN(ln, phy) _MMIO(_ICL_PORT_TX_DW_LN(7, ln, > phy)) > #define N_SCALAR(x) ((x) << 24) > #define N_SCALAR_MASK (0x7F << 24) > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx