[Intel-gfx] [PATCH 1/2] drm/i915/ehl/dsi: Set lane latency optimization for DW1
Souza, Jose
jose.souza at intel.com
Wed Jun 19 23:15:52 UTC 2019
On Wed, 2019-06-19 at 15:38 -0700, Matt Roper wrote:
> On Tue, Jun 18, 2019 at 12:59:59PM -0700, José Roberto de Souza
> wrote:
> > From: Vandita Kulkarni <vandita.kulkarni at intel.com>
> >
> > EHL has 2 additional steps in the DSI sequence, this is one of then
> > the lane latency optimization for DW1.
> >
> > BSpec: 20597
> > Cc: Uma Shankar <uma.shankar at intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > Cc: Jani Nikula <jani.nikula at intel.com>
> > Signed-off-by: Vandita Kulkarni <vandita.kulkarni at intel.com>
> > ---
> > drivers/gpu/drm/i915/display/icl_dsi.c | 11 +++++++++++
> > drivers/gpu/drm/i915/i915_reg.h | 2 ++
> > 2 files changed, 13 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c
> > b/drivers/gpu/drm/i915/display/icl_dsi.c
> > index 74448e6bf749..ee85428b309f 100644
> > --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> > @@ -403,6 +403,17 @@ static void
> > gen11_dsi_config_phy_lanes_sequence(struct intel_encoder *encoder)
> > tmp &= ~FRC_LATENCY_OPTIM_MASK;
> > tmp |= FRC_LATENCY_OPTIM_VAL(0x5);
> > I915_WRITE(ICL_PORT_TX_DW2_GRP(port), 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 &= ~LATENCY_OPTIM_MASK;
> > + tmp |= LATENCY_OPTIM_VAL(0);
> > + I915_WRITE(ICL_PORT_PCS_DW1_AUX(port), tmp);
> > + tmp = I915_READ(ICL_PORT_PCS_DW1_LN0(port));
> > + tmp &= ~LATENCY_OPTIM_MASK;
> > + tmp |= LATENCY_OPTIM_VAL(0x1);
> > + I915_WRITE(ICL_PORT_PCS_DW1_GRP(port), tmp);
> > + }
>
> Minor nitpick, but these sequences might be slightly easier to read
> if
> there was a blank line separating each R/M/W chunk.
Agreed, I was avoiding change the patch because it is not mine but this
will not hurt anyone.
>
> The changes here look correct according to the description on bspec
> page
> 20597 although it looks like the bspec authors forgot to update the
> 'Valid Values' section for these bits on page 20398; not sure if you
> want to file a bspec defect about that or not.
Well the missing value is 0, that is the default after reset so we are
safe here.
>
> > }
> >
> > }
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h
> > b/drivers/gpu/drm/i915/i915_reg.h
> > index d6483b5dc8e5..1f2c3ebdf87b 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -1896,6 +1896,8 @@ enum i915_power_well_id {
> > #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 COMMON_KEEPER_EN (1 << 26)
> > +#define LATENCY_OPTIM_MASK (0x3 << 2)
> > +#define LATENCY_OPTIM_VAL(x) ((x) << 2)
>
> Should we try to include part of the name of the register in these
> definitions (e.g., DW1_LATENCY_OPTIM)? I'm not sure if we should
> worry
> about people mixing up these vs the FRC_LATENCY_OPTIM defines farther
> down for the TX_DW2 register.
I also prefer to include the register name to the bits but the general
rule is keep consistent with around code or fix everything, as this is
not mine patch I left this way.
>
> Up to you on whether you think it's worth clarifying the
> naming. Either
> way,
>
> Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
Thanks
>
> >
> > /* CNL/ICL Port TX registers */
> > #define _CNL_PORT_TX_AE_GRP_OFFSET 0x162340
> > --
> > 2.22.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