• Rodrigo Vivi's avatar
    drm/i915: PSR: Let's rely more on frontbuffer tracking. · 921ec285
    Rodrigo Vivi authored
    The ultimate goal here is to remove the dependency we
    currently have on audio driver power to get PSR working.
    Since with audio driver runtime PM disabled the Hardware tracking
    believes graphics is fully active and prevent PSR Entry, or
    in other words continuously exit PSR.
    
    So, the idea is to transfer the PSR exit responsability
    from the HW tracking to the SW tracking (frontbuffer tracking),
    who is really mature right now.
    
    However with LPSP masked out there might be cases where we could
    miss exit from HW tracking since it can be relying on this,
    like a specific case reported at our mailing list who
    user reported he would miss screen updates if scrolling firefox
    in a Gnome environment when i915 runtimepm was enabled.
    
    So before masking out LPSP again to make us independent from
    the audio driver we need to make sure that all our cases
    are coverred from the frontbuffer tracking perspective,
    where the flush means invalidate and flush.
    
    Without this patch for HSW, BDW and SKL we just do the
    invalidate part when the flush wasn't originated by a page flip
    because we were trusting the HW tracking for the flip case.
    
    So let's rely more on frontbuffer tracking and do the
    invalidation regardless the origin as expected for all platforms.
    
    v2: Improve commit message as suggested by Paulo.
    
    v3: Another attempt to let commit message more clear.
    
    Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: Damien Lespiau damien.lespiau@intel.com
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    921ec285
intel_psr.c 23.8 KB