1. 07 May, 2014 3 commits
    • Imre Deak's avatar
      drm/i915: vlv: add runtime PM support · ddeea5b0
      Imre Deak authored
      Add runtime PM support for VLV, but leave it disabled. The next patch
      enables it.
      
      The suspend/resume sequence used is based on [1] and [2]. In practice we
      depend on the GT RC6 mechanism to save the HW context depending on the
      render and media power wells. By the time we run the runtime suspend
      callback the display side is also off and the HW context for that is
      managed by the display power domain framework.
      
      Besides the above there are Gunit registers that depend on a system-wide
      power well. This power well goes off once the device enters any of the
      S0i[R123] states. To handle this scenario, save/restore these Gunit
      registers. Note that this is not the complete register set dictated by
      [2], to remove some overhead, registers that are known not to be used are
      ignored. Also some registers are fully setup by initialization functions
      called during resume, these are not saved either. The list of registers
      can be further reduced, see the TODO note in the code.
      
      [1] VLV_gfx_clocking_PM_reset_y12w21d3 / "Driver D3 entry/exit"
      [2] VLV2_S0IXRegs
      
      v2:
      - unchanged
      v3:
      - fix s/GEN6_PMIIR/GEN6_PMIMR/ typo when saving/restoring registers
        (Ville)
      v4:
      - rebased on the previous patch fixing GEN register prefixes
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      [ rebased (according to v4) ]
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      ddeea5b0
    • Imre Deak's avatar
      drm/i915: propagate the error code from runtime PM callbacks · 0ab9cfeb
      Imre Deak authored
      Atm, none of the RPM callbacks can fail, but the next patch adding
      RPM support for VLV changes this, so prepare for it.
      
      In case one of these callbacks return error RPM will get permanently
      disabled until the error is explicitly cleared. In the future we could
      add support for re-enabling it, for example after resetting the HW, but
      for now - hopefully - we can live with the simpler solution.
      
      v2:
      - propagate the error from the resume callbacks too (Paulo)
      v3:
      - fix rebase fail typo around IS_GEN6() check in intel_runtime_suspend()
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      0ab9cfeb
    • Imre Deak's avatar
      drm/i915: add various missing GTI/Gunit register definitions · 9e72b46c
      Imre Deak authored
      Needed by the VLV S0ix context save/restore helpers.
      
      v2:
      - unchanged
      v3:
      - use proper GEN register prefixes (Ville)
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      9e72b46c
  2. 06 May, 2014 13 commits
  3. 05 May, 2014 24 commits