1. 10 8月, 2012 2 次提交
    • D
      drm/i915: fixup up debugfs rps state handling · 004777cb
      Daniel Vetter 提交于
      - Take the dev->struct_mutex around access the corresponding state
        (and adjusting the rps hw state).
      - Add an assert to gen6_set_rps to ensure we don't forget about this
        in the future.
      - Don't set up the min/max_freq files if it doesn't apply to the hw.
        And do the same for the gen6+ cache sharing file while at it.
      
      v2: Move the gen6+ checks into the read/write callbacks. Thanks to the
      awesome drm midlayer we can't check that when registering the debugfs
      files, because the driver is not yet fully set up, specifically the
      ->load callback hasn't run yet.
      
      Oh how I despise this disaster ...
      
      v3: Also add a WARN_ON(mutex_is_locked) in set_rps to check the
      locking.
      
      v4: Use mutex_lock_interruptible, suggested by Chris Wilson.
      
      Reviewed-by: Ben Widawsky <ben@bwidawsk.net> (for v2)
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      004777cb
    • D
      drm/i915: properly guard ilk ips state · 02d71956
      Daniel Vetter 提交于
      The update_gfx_val function called from mark_busy wasn't taking the
      mchdev_lock, as it should have. Also sprinkle a few spinlock asserts
      over the code to document things better.
      
      Things are still rather confusing, especially since a few variables
      in dev_priv are used by both the gen6+ rps code and the ilk ips code.
      But protected by totally different locks. Follow-on patches will clean
      that up.
      
      v2: Don't add a deadlock ... hence split up update_gfx_val into a
      wrapper that grabs the lock and an internal __ variant for callsites
      within intel_pm.c that already have taken the lock.
      
      v3: Mark the internal helper as static, noticed by Ben Widawsky.
      
      v4: Damien Lespiau had questions about the safety of the ips setup
      sequence, explain in a comment why it works.
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      02d71956
  2. 09 8月, 2012 1 次提交
  3. 26 7月, 2012 3 次提交
    • D
      drm/i915: rip out sanitize_pm again · acbe9475
      Daniel Vetter 提交于
      We believe to have squashed all issues around the gen6+ rps interrupt
      generation and why the gpu sometimes got stuck. With that cleared up,
      there's no user left for the sanitize_pm infrastructure, so let's just
      rip it out.
      
      Note that 'intel_reg_write 0xa014 0x13070000' is the w/a if we find
      ourselves stuck again.
      Acked-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      acbe9475
    • D
      drm/i915: Only set the down rps limit when at the loweset frequency · 20b46e59
      Daniel Vetter 提交于
      The power docs say that when the gt leaves rc6, it is in the lowest
      frequency and only about 25 usec later will switch to the frequency
      selected in GEN6_RPNSWREQ. If the downclock limit expires in that
      window and the down limit is set to the lowest possible frequency, the
      hw will not send the down interrupt. Which leads to a too high gpu
      clock and wasted power.
      
      Chris Wilson already worked on this with
      
      commit 7b9e0ae6
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Sat Apr 28 08:56:39 2012 +0100
      
          drm/i915: Always update RPS interrupts thresholds along with
          frequency
      
      but got the logic inverted: The current code set the down limit as
      long as we haven't reached it. Instead of only once with reached the
      lowest frequency.
      
      Note that we can't always set the downclock limit to 0, because
      otherwise the hw will keep on bugging us with downclock request irqs
      once the lowest level is reached.
      
      For similar reasons also always set the upclock limit, otherwise the
      hw might poke us again with interrupts.
      
      v2: Chris Wilson noticed that the limit reg is also computed in
      sanitize_pm. To avoid duplication, extract the code into a common
      function.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      20b46e59
    • C
      drm/i915: Avoid concurrent access when marking the device as idle/busy · f047e395
      Chris Wilson 提交于
      As suggested by Daniel, rip out the independent timers for device and
      crtc busyness and integrate the manual powermanagement of the display
      engine into the GEM core and its request tracking. The benefits are that
      the code is a lot smaller, fewer moving parts and should fit more neatly
      into the overall activity tracking of the driver.
      
      v2: Complete overhaul and removal of the racy timers and workers.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f047e395
  4. 20 7月, 2012 2 次提交
  5. 05 7月, 2012 9 次提交
  6. 04 7月, 2012 1 次提交
  7. 26 6月, 2012 2 次提交
  8. 21 6月, 2012 1 次提交
  9. 19 6月, 2012 4 次提交
  10. 18 6月, 2012 1 次提交
    • B
      drm/i915: set IDICOS to medium uncore resources · 20848223
      Ben Widawsky 提交于
      I'm seeing about a 5% FPS improvement across various benchmarks on my
      IVB i3. Rumor has it that the higher end parts show even more benefit.
      
      This derives from a patch originally given to me by Bernard. The docs
      are  confusing about the definition names (ie. medium really seems like
      max), but it would seem it gives more cache to the GT at the expense of
      uncore. This configuration makes the split most in favor of the GT. I've
      not tried the other IDICOS values.
      
      Cc: "Kilarski, Bernard R" <bernard.r.kilarski@intel.com>
      Acked-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      20848223
  11. 14 6月, 2012 1 次提交
  12. 25 5月, 2012 1 次提交
  13. 24 5月, 2012 2 次提交
  14. 20 5月, 2012 5 次提交
  15. 03 5月, 2012 5 次提交