1. 03 5月, 2012 23 次提交
  2. 17 4月, 2012 1 次提交
  3. 16 4月, 2012 2 次提交
  4. 10 4月, 2012 4 次提交
    • D
      drm/i915: dump the DMA fetch addr register on pre-gen6 · 9d2f41fa
      Daniel Vetter 提交于
      It exists way back to gen2, bug got moved around on gen4 a bit.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9d2f41fa
    • D
      drm/i915: extract gt interrupt handler · e7b4c6b1
      Daniel Vetter 提交于
      vlv, ivb and snb all share the gen6+ gt irq handling. 3 copies of the
      same stuff is a bit much, so extract it into a little helper.
      
      Now ilk has a different gt irq handling than snb, but shares the same
      irq handler (due to the similar display block). So also extract the
      ilk gt irq handling to clearly separate these two things.
      
      Nice side effect of this is that we can complete Ben Widawsky's gen6+
      irq bit #define cleanup and call the render irq also with the GEN6
      alias. Beforehand that code was shared with ilk, and neither option
      really made much sense.
      
      As a bonus this enables the error interrupt handling lifted from the
      vlv code on snb and ivb, too.
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Antagonized-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e7b4c6b1
    • D
      drm/i915: rip out old HWSTAM missed irq WA for vlv · fad2596a
      Daniel Vetter 提交于
      This got copy-pasted from an older version. The newer kinds of
      workarounds don't need this anymore.
      
      Shame on me for not noticing when picking up the vlv irq patch.
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      fad2596a
    • B
      drm/i915: ring irq cleanups · e2a1e2f0
      Ben Widawsky 提交于
      - gen6 put/get only need one argument
          rflags and gflags are always the same (see above explanation)
      - remove a couple redundantly defined IRQs
      - reordered some lines to make things go in descending order
      
      Every ring has its own interrupts, enables, masks, and status bits that
      are fed into the main interrupt enable/mask/status registers. At one
      point in time it seemed like a good idea to make our functions support
      the notion that each interrupt may have a different bit position in the
      corresponding register (blitter parser error may be bit n in IMR, but
      bit m in blitter IMR). It turned out though that the HW designers did us
      a solid on Gen6+ and this unfortunate situation has been avoided. This
      allows our interrupt code to be cleaned up a bit.
      
      I jammed this into one commit because there should be no functional
      change with this commit, and staging it into multiple commits was
      unnecessarily artificial IMO.
      
      CC: Chris Wilson <chris@chris-wilson.co.uk>
      CC: Jesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NBen Widawsky <benjamin.widawsky@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet:
      - fixed up merged conflict with vlv changes.
      - added GEN6 to GT blitter bit, we only use it on gen6+.
      - added a comment to both ring irq bits and GT irq bits that on gen6+
        these alias.
      - added comment that GT_BSD_USER_INTERRUPT is ilk-only.
      - I've got confused a bit that we still use GT_USER_INTERRUPT on ivb
        for the render ring - but this goes back to ilk where we have only
        gt interrupt bits and so we be equally confusing if changed.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e2a1e2f0
  5. 29 3月, 2012 1 次提交
  6. 21 3月, 2012 1 次提交
    • D
      drm/i915: bind objects to the global gtt only when needed · 74898d7e
      Daniel Vetter 提交于
      And track the existence of such a binding similar to the aliasing
      ppgtt case. Speeds up binding/unbinding in the common case where we
      only need a ppgtt binding (which is accessed in a cpu coherent fashion
      by the gpu) and no gloabl gtt binding (which needs uc writes for the
      ptes).
      
      This patch just puts the required tracking in place.
      
      v2: Check that global gtt mappings exist in the error_state capture
      code (with Chris Wilson's llc reloc patches batchbuffers are no longer
      relocated as mappable in all situations, so this matters). Suggested
      by Chris Wilson.
      
      v3: Adapted to Chris' latest llc-reloc patches.
      
      v4: Fix a bug in the i915 error state capture code noticed by Chris
      Wilson.
      Reviewed-and-tested-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      74898d7e
  7. 19 3月, 2012 1 次提交
  8. 15 2月, 2012 2 次提交
  9. 13 2月, 2012 1 次提交
  10. 09 2月, 2012 1 次提交
    • D
      drm/i915: dump even more into the error_state · 7e3b8737
      Daniel Vetter 提交于
      Chris Wilson and me have again stared at funny error states and it's
      been pretty clear from the start that something was seriously amiss.
      The seqnos last seen by the cpu were a few hundred behind those that
      the gpu could have possibly emitted last before it died ...
      
      Chris now tracked it down (hopefully, definit verdict's still out),
      but in hindsight we'd have found the bug by simply dumping the cpu
      side tracking of the ring head and tail registers.
      
      Fix this and prevent an identical time-waster in the future.
      
      Because the hangs always involved semaphores in one way or another,
      we've tried to dump the mbox registers, but couldn't find any
      inconsistencies. Still, dump them too.
      Reviewed-and-wanted-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7e3b8737
  11. 01 2月, 2012 1 次提交
  12. 30 1月, 2012 2 次提交