[Intel-gfx] [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation
Imre Deak
imre.deak at intel.com
Wed Oct 4 08:13:09 UTC 2017
On Tue, Oct 03, 2017 at 11:20:10AM -0700, Rodrigo Vivi wrote:
> On Tue, Oct 03, 2017 at 05:47:50PM +0000, Rodrigo Vivi wrote:
> > On Tue, Oct 03, 2017 at 09:51:59AM +0000, Imre Deak wrote:
> > > According to BSpec GLK like BXT needs to ignore the idle state of cores
> > > before starting the DMC firmware's DC state handler.
> >
> > no mention on CNL there?
> >
> > Btw I just saw that CNL DMC seems much more like BXT than like SKL.
> > Our code probably needs deeper changes...
>
> nevermind. I was wrong about this.
> The only difference I see on CNL compared with SKL now
> is the bit 31 of DC_STATE_EN...
>
> A bit that we should set during modeset and clear after. But there is
> no mention about that bit on the main sequences page and also we
> leave dc states disabled during modeset anyways besides that
> clock gating wa... So I believe we are safe.
>
> Imre, thoughts?
Yes, that bit would gate CSR_START which sounds redundant if we disable
DC states anyway around a mode set.
Art, could this be clarified under "Sequences for Display C5 and C6" or
the definition DC_STATE_EN?
Thanks,
Imre
> > >
> > > Fixes: dbb28b5c3d3c ("drm/i915/DMC/GLK: Load DMC on GLK")
> > > Cc: Anusha Srivatsa <anusha.srivatsa at intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > > Signed-off-by: Imre Deak <imre.deak at intel.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_csr.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> > > index cdfb624eb82d..ea5d5c9645a4 100644
> > > --- a/drivers/gpu/drm/i915/intel_csr.c
> > > +++ b/drivers/gpu/drm/i915/intel_csr.c
> > > @@ -216,7 +216,7 @@ static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
> > >
> > > mask = DC_STATE_DEBUG_MASK_MEMORY_UP;
> > >
> > > - if (IS_BROXTON(dev_priv))
> > > + if (IS_GEN9_LP(dev_priv))
> > > mask |= DC_STATE_DEBUG_MASK_CORES;
> >
> > I saw in spec for SKL+: "This field must be set to Mask prior to enabling DC5 or DC6"
> > So I believe this should be INTEL_GEN(dev_priv) >= 9... :/
> >
> >
> > >
> > > /* The below bit doesn't need to be cleared ever afterwards */
> > > --
> > > 2.13.2
> > >
More information about the Intel-gfx
mailing list