Oh, actually please just ignore this patch completely. More work here need to be done. This apparently helped on the issue that I was facing here but doesnt' solve completely. On Fri, 2016-02-12 at 07:58 -0800, Rodrigo Vivi wrote: > On Fri, 2016-02-12 at 11:34 +0200, David Weinehall wrote: > > On Thu, Feb 11, 2016 at 09:00:47AM -0800, Rodrigo Vivi wrote: > > > Framecounter register is read-only so DMC cannot restore it > > > after exiting DC5 and DC6. > > > > > > Easiest way to go is to avoid the counter and use vblank > > > interruptions for this platform and for all the following > > > ones since DMC came to stay. At least while we can't change > > > this register to read-write. > > > > > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > > > --- > > > drivers/gpu/drm/i915/i915_irq.c | 7 +++++-- > > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/i915_irq.c > > > b/drivers/gpu/drm/i915/i915_irq.c > > > index 25a8937..c294a4b 100644 > > > --- a/drivers/gpu/drm/i915/i915_irq.c > > > +++ b/drivers/gpu/drm/i915/i915_irq.c > > > @@ -4556,7 +4556,10 @@ void intel_irq_init(struct > > > drm_i915_private > > > *dev_priv) > > > > > > pm_qos_add_request(&dev_priv->pm_qos, > > > PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); > > > > > > - if (IS_GEN2(dev_priv)) { > > > + if (INTEL_INFO(dev_priv)->gen >= 9) { > > > + dev->max_vblank_count = 0; > > > + dev->driver->get_vblank_counter = > > > g4x_get_vblank_counter; > > > + } else if (IS_GEN2(dev_priv)) { > > > dev->max_vblank_count = 0; > > > dev->driver->get_vblank_counter = > > > i8xx_get_vblank_counter; > > > } else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen > > > > = 5) { > > > @@ -4572,7 +4575,7 @@ void intel_irq_init(struct drm_i915_private > > > *dev_priv) > > > * Gen2 doesn't have a hardware frame counter and so > > > depends on > > > * vblank interrupts to produce sane vblank seuquence > > > numbers. > > > */ > > > - if (!IS_GEN2(dev_priv)) > > > + if (!IS_GEN2(dev_priv) && !INTEL_INFO(dev_priv)->gen >= > > > 9) > > > > I think this should be: > > > > if (INTEL_INFO(dev_priv)->gen < 9) > > Yeap, < 9 is better... > > > > > If gen < 9, then IS_GEN2 is always true, also ! has higher > > precedence > > than >=, so you're essentially comparing whether the logical > > negation > > of > > INTEL_INFO(dev_priv)->gen is >= 9. > > but it is also !gen2 > > So I believe the right is > > if (INTEL_INFO(dev_priv)->gen < 9 && !IS_GEN2(dev_priv)) > > agree? > > > > > > > Kind regards, David _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx