On Tue, Feb 21, 2023 at 11:30:38AM -0800, Matt Roper wrote:
> The bspec was updated with a minor change to the 'DCC mode select'
> setting to be programmed during combo PHY initialization.
> 
> Bspec: 49291
> Signed-off-by: Matt Roper <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_combo_phy.c      | 9 +++------
>  drivers/gpu/drm/i915/display/intel_combo_phy_regs.h | 4 ++--
>  2 files changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_combo_phy.c 
> b/drivers/gpu/drm/i915/display/intel_combo_phy.c
> index 27e98eabb006..0608ae95b6f5 100644
> --- a/drivers/gpu/drm/i915/display/intel_combo_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_combo_phy.c
> @@ -233,8 +233,7 @@ static bool icl_combo_phy_verify_state(struct 
> drm_i915_private *dev_priv,
>                                    ICL_PORT_TX_DW8_ODCC_CLK_DIV_SEL_DIV2);
>  
>               ret &= check_phy_reg(dev_priv, phy, ICL_PORT_PCS_DW1_LN(0, phy),
> -                                  DCC_MODE_SELECT_MASK,
> -                                  DCC_MODE_SELECT_CONTINUOSLY);
> +                                  DCC_MODE_SELECT_MASK, RUN_DCC_ONCE);
>       }
>  
>       ret &= icl_verify_procmon_ref_values(dev_priv, phy);
> @@ -352,10 +351,8 @@ static void icl_combo_phys_init(struct drm_i915_private 
> *dev_priv)
>                       val |= ICL_PORT_TX_DW8_ODCC_CLK_DIV_SEL_DIV2;
>                       intel_de_write(dev_priv, ICL_PORT_TX_DW8_GRP(phy), val);
>  
> -                     val = intel_de_read(dev_priv, ICL_PORT_PCS_DW1_LN(0, 
> phy));
> -                     val &= ~DCC_MODE_SELECT_MASK;
> -                     val |= DCC_MODE_SELECT_CONTINUOSLY;
> -                     intel_de_write(dev_priv, ICL_PORT_PCS_DW1_GRP(phy), 
> val);
> +                     intel_de_rmw(dev_priv, ICL_PORT_PCS_DW1_LN(0, phy),
> +                                  DCC_MODE_SELECT_MASK, RUN_DCC_ONCE);

Actually, converting to intel_de_rmw won't work here since we need to
make sure the write goes to the _GRP register instead of the _LN0
register...I'll send an updated version.


Matt

>               }
>  
>               icl_set_procmon_ref_values(dev_priv, phy);
> diff --git a/drivers/gpu/drm/i915/display/intel_combo_phy_regs.h 
> b/drivers/gpu/drm/i915/display/intel_combo_phy_regs.h
> index 2ed65193ca19..b0983edccf3f 100644
> --- a/drivers/gpu/drm/i915/display/intel_combo_phy_regs.h
> +++ b/drivers/gpu/drm/i915/display/intel_combo_phy_regs.h
> @@ -90,8 +90,8 @@
>  #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_LN(ln, phy)         _MMIO(_ICL_PORT_PCS_DW_LN(1, 
> ln, phy))
> -#define   DCC_MODE_SELECT_MASK                       (0x3 << 20)
> -#define   DCC_MODE_SELECT_CONTINUOSLY                (0x3 << 20)
> +#define   DCC_MODE_SELECT_MASK                       REG_GENMASK(21, 20)
> +#define   RUN_DCC_ONCE                               
> REG_FIELD_PREP(DCC_MODE_SELECT_MASK, 0)
>  #define   COMMON_KEEPER_EN                   (1 << 26)
>  #define   LATENCY_OPTIM_MASK                 (0x3 << 2)
>  #define   LATENCY_OPTIM_VAL(x)                       ((x) << 2)
> -- 
> 2.39.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

Reply via email to