1. 07 Feb, 2014 1 commit
    • Jeff McGee's avatar
      drm/i915: Restore rps/rc6 on reset · dd0a1aa1
      Jeff McGee authored
      A check of rps/rc6 state after i915_reset determined that the ring
      MAX_IDLE registers were returned to their hardware defaults and that
      the GEN6_PMIMR register was set to mask all interrupts. This change
      restores those values to their pre-reset states by re-initializing
      rps/rc6 in i915_reset. A full re-initialization was opted for versus
      a targeted set of restore operations for simplicity and maintain-
      ability. Note that the re-initialization is not done for Ironlake,
      due to a past comment that it causes problems.
      
      Also updated the rps initialization sequence to preserve existing
      min/max values in the case of a re-init. We assume the values were
      validated upon being set and do not do further range checking. The
      debugfs interface for changing min/max was updated with range
      checking to ensure this condition (already present in sysfs
      interface).
      
      v2: fix rps logging to output hw_max and hw_min, not rps.max_delay
          and rps.min_delay which don't strictly represent hardware limits.
          Add igt testcase to signed-off-by section.
      
      Testcase: igt/pm_rps/reset
      Signed-off-by: default avatarJeff McGee <jeff.mcgee@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      dd0a1aa1
  2. 06 Feb, 2014 1 commit
    • Chris Wilson's avatar
      drm/i915: Prevent recursion by retiring requests when the ring is full · 1f70999f
      Chris Wilson authored
      As the VM do not track activity of objects and instead use a large
      hammer to forcibly idle and evict all of their associated objects when
      one is released, it is possible for that to cause a recursion when we
      need to wait for free space on a ring and call retire requests.
      (intel_ring_begin -> intel_ring_wait_request ->
      i915_gem_retire_requests_ring -> i915_gem_context_free ->
      i915_gem_evict_vm -> i915_gpu_idle -> intel_ring_begin etc)
      
      In order to remove the requirement for calling retire-requests from
      intel_ring_wait_request, we have to inline a couple of steps from
      retiring requests, notably we have to record the position of the request
      we wait for and use that to update the available ring space.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      1f70999f
  3. 05 Feb, 2014 5 commits
  4. 04 Feb, 2014 10 commits
  5. 30 Jan, 2014 15 commits
  6. 29 Jan, 2014 8 commits