• Paulo Zanoni's avatar
    drm/i915: make PC8 be part of runtime PM suspend/resume · a8a8bd54
    Paulo Zanoni authored
    Currently, when our driver becomes idle for i915.pc8_timeout (default:
    5s) we enable PC8, so we save some power, but not everything we can.
    Then, while PC8 is enabled, if we stay idle for more
    autosuspend_delay_ms (default: 10s) we'll enter runtime PM and put the
    graphics device in D3 state, saving even more power. The two features
    are separate things with increasing levels of power savings, but if we
    disable PC8 we'll never get into D3.
    
    While from the modularity point of view it would be nice to keep these
    features as separate, we have reasons to merge them:
     - We are not aware of anybody wanting a "PC8 without D3" environment.
     - If we keep both features as separate, we'll have to to test both
       PC8 and PC8+D3 code paths. We're already having a major pain to
       make QA do automated testing of just one thing, testing both paths
       will cost even more.
     - Only Haswell+ supports PC8, so if we want to add runtime PM support
       to, for example, IVB, we'll have to copy some code from the PC8
       feature to runtime PM, so merging both features as a single thing
       will make it easier for enabling runtime PM on other platforms.
    
    This patch only does the very basic steps required to have PC8 and
    runtime PM merged on a single feature: the next patches will take care
    of cleaning up everything.
    
    v2: - Rebase.
    v3: - Rebase.
        - Fully remove the deprecated i915 params since Daniel doesn't
          consider them as part of the ABI.
    v4: - Rebase.
        - Fix typo in the commit message.
    v5: - Rebase, again.
        - Add a huge comment explaining the different forcewake usage
          (Chris, Daniel).
        - Use open-coded forcewake functions (Daniel).
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    a8a8bd54
i915_drv.h 86.2 KB