On Sat, Jan 07, 2017 at 11:42:04PM +0530, vathsala nagaraju wrote: > As per bpsec, CHICKEN_TRANS_EDP bit 12 ,15 > must be programmed. > Enable bit 12 for programmable header packet. > Enable bit 15 for Y cordinate support. > > v2: (Rodrigo) > - move CHICKEN_TRANS_EDP bit set logic right after setup_vsc > > v3:(Rodrigo) > - initialize chicken_trans to CHICKEN_TRANS_BIT12 instead of 0 > > v4:(Rodrigo) > - initialize chicken_trans=0,add chicken_trans=CHICKEN_TRANS_BIT12 Weird. Just scope the variable properly, use the correct type. > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > Cc: Jim Bride <jim.bride@xxxxxxxxxxxxxxx> > Signed-off-by: vathsala nagaraju <vathsala.nagaraju@xxxxxxxxx> > Signed-off-by: Patil Deepti <deepti.patil@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_reg.h | 7 +++++++ > drivers/gpu/drm/i915/intel_psr.c | 7 +++++++ > 2 files changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 7830e6e..5ca506a 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -6449,6 +6449,13 @@ enum { > #define BDW_DPRS_MASK_VBLANK_SRD (1 << 0) > #define CHICKEN_PIPESL_1(pipe) _MMIO_PIPE(pipe, _CHICKEN_PIPESL_1_A, _CHICKEN_PIPESL_1_B) > > +#define CHICKEN_TRANS_A 0x420c0 > +#define CHICKEN_TRANS_B 0x420c4 > +#define CHICKEN_TRANS(trans) _MMIO_TRANS(trans, CHICKEN_TRANS_A, CHICKEN_TRANS_B) > +#define TRANS_EDP 3 > +#define CHICKEN_TRANS_BIT12 (1<<12) > +#define CHICKEN_TRANS_BIT15 (1<<15) Useless naming. Either given them proper names or don't. > if (!HAS_PSR(dev_priv)) { u32 chicken; > DRM_DEBUG_KMS("PSR not supported on this platform\n"); > @@ -505,6 +506,12 @@ void intel_psr_enable(struct intel_dp *intel_dp) > dev_priv->psr.psr2_support = false; > else > skl_psr_setup_su_vsc(intel_dp); > + /* Set CHICKEN_TRANS_BIT12 for programable header */ > + chicken_trans = CHICKEN_TRANS_BIT12; We can see you are setting CHICKEN_TRANS_BIT12, so don't bother repeating that. What programmable header? Why is this in a chicken bit, what is the bspec reference, all of those would be useful to answer. > + /* Set CHICKEN_TRANS_BIT15 if Y coordinate is supported */ > + if (dev_priv->psr.y_cord_support) > + chicken_trans |= CHICKEN_TRANS_BIT15; Again. Tell us why, we can read the code. Are the names meaningful? More meaningful than chicken |= BIT(15); ? > + I915_WRITE(CHICKEN_TRANS(TRANS_EDP), chicken_trans); > } else { > /* set up vsc header for psr1 */ > hsw_psr_setup_vsc(intel_dp); > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx