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) 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. Kind regards, David _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx