1. 17 12月, 2010 1 次提交
    • M
      drm/i915: Add support for precise vblank timestamping (v2) · 0af7e4df
      Mario Kleiner 提交于
      v2: Change IS_IRONLAKE to IS_GEN5 to adapt to 2.6.37
      
      This patch adds new functions for use by the drm core:
      
      .get_vblank_timestamp() provides a precise timestamp
      for the end of the most recent (or current) vblank
      interval of a given crtc, as needed for the DRI2
      implementation of the OML_sync_control extension.
      It is a thin wrapper around the drm function
      drm_calc_vbltimestamp_from_scanoutpos() which does
      almost all the work.
      
      .get_scanout_position() provides the current horizontal
      and vertical video scanout position and "in vblank"
      status of a given crtc, as needed by the drm for use by
      drm_calc_vbltimestamp_from_scanoutpos().
      
      The patch modifies the pageflip completion routine
      to use these precise vblank timestamps as the timestamps
      for pageflip completion events.
      
      This code has been only tested on a HP-Mini Netbook with
      Atom processor and Intel 945GME gpu. The codepath for
      (IS_G4X(dev) || IS_GEN5(dev) || IS_GEN6(dev)) gpu's
      has not been tested so far due to lack of hardware.
      Signed-off-by: NMario Kleiner <mario.kleiner@tuebingen.mpg.de>
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      0af7e4df
  2. 15 12月, 2010 1 次提交
  3. 14 12月, 2010 1 次提交
  4. 06 12月, 2010 1 次提交
  5. 05 12月, 2010 1 次提交
  6. 25 11月, 2010 1 次提交
  7. 24 11月, 2010 2 次提交
  8. 23 11月, 2010 1 次提交
  9. 22 11月, 2010 2 次提交
  10. 16 11月, 2010 1 次提交
  11. 12 11月, 2010 1 次提交
  12. 11 11月, 2010 1 次提交
  13. 01 11月, 2010 1 次提交
  14. 30 10月, 2010 2 次提交
  15. 28 10月, 2010 4 次提交
  16. 27 10月, 2010 2 次提交
    • C
      drm/i915/ringbuffer: Drop the redundant dev from the vfunc interface · 78501eac
      Chris Wilson 提交于
      The ringbuffer keeps a pointer to the parent device, so we can use that
      instead of passing around the pointer on the stack.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      78501eac
    • P
      mm: stack based kmap_atomic() · 3e4d3af5
      Peter Zijlstra 提交于
      Keep the current interface but ignore the KM_type and use a stack based
      approach.
      
      The advantage is that we get rid of crappy code like:
      
      	#define __KM_PTE			\
      		(in_nmi() ? KM_NMI_PTE : 	\
      		 in_irq() ? KM_IRQ_PTE :	\
      		 KM_PTE0)
      
      and in general can stop worrying about what context we're in and what kmap
      slots might be appropriate for that.
      
      The downside is that FRV kmap_atomic() gets more expensive.
      
      For now we use a CPP trick suggested by Andrew:
      
        #define kmap_atomic(page, args...) __kmap_atomic(page)
      
      to avoid having to touch all kmap_atomic() users in a single patch.
      
      [ not compiled on:
        - mn10300: the arch doesn't actually build with highmem to begin with ]
      
      [akpm@linux-foundation.org: coding-style fixes]
      [akpm@linux-foundation.org: fix up drivers/gpu/drm/i915/intel_overlay.c]
      Acked-by: NRik van Riel <riel@redhat.com>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: NChris Metcalf <cmetcalf@tilera.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: David Miller <davem@davemloft.net>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Dave Airlie <airlied@linux.ie>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3e4d3af5
  17. 22 10月, 2010 1 次提交
  18. 20 10月, 2010 1 次提交
  19. 19 10月, 2010 1 次提交
  20. 08 10月, 2010 1 次提交
  21. 01 10月, 2010 1 次提交
  22. 25 9月, 2010 2 次提交
    • C
      drm/i915: Adjust hangcheck EIO semantics · 30dbf0c0
      Chris Wilson 提交于
      Owain Ainsworth reported an issue between the interaction of the
      hangcheck and userspace immediately (and permanently) falling back to
      s/w rasterisation. In order to break the mutex and begin resetting the
      GPU, we must abort the current operation (usually within the wait) and
      climb sufficiently far back up the call chain to drop the mutex. In his
      implementation, Owain has a loop within the ioctl handler to detect the
      hang and then sleep until the error handler has run. I've chosen to
      return to userspace and report an EAGAIN which should trigger the
      userspace ioctl handler to repeat the call (simply because it felt less
      invasive...). Before hitting a wedged GPU, we then wait upon completion
      of the error handler.
      Reported-by: NOwain G. Ainsworth <zerooa@googlemail.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      30dbf0c0
    • C
      drm/i915: Only hold a process-local lock whilst throttling. · f787a5f5
      Chris Wilson 提交于
      Avoid cause latencies in other clients by not taking the global struct
      mutex and moving the per-client request manipulation a local per-client
      mutex. For example, this allows a compositor to schedule a page-flip
      (through X) whilst an OpenGL application is monopolising the GPU.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      f787a5f5
  23. 21 9月, 2010 5 次提交
  24. 14 9月, 2010 1 次提交
    • C
      drm/i915: Reduce hangcheck frequency · b3b079db
      Chris Wilson 提交于
      By reducing the hangcheck frequency we check less often, conserving
      resources, and still detect a lock up quickly. On a fast machine with a
      slow GPU (like a Core2 paired with a 945G) it is easy for the hangcheck to
      misfire as we check too fast.
      
      Also once hung and if we fail to completely reset the chip, we have a
      nasty habit of proclaming a hang many times a second and generating a
      strobe-like display.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      b3b079db
  25. 12 9月, 2010 1 次提交
  26. 10 9月, 2010 1 次提交
  27. 09 9月, 2010 1 次提交
  28. 08 9月, 2010 1 次提交
    • C
      drm/i915: Add ringbuffer wait reset to hangcheck · 8c80b59b
      Chris Wilson 提交于
      The GPU records whether it is currently waiting for a completion of a
      WAIT_FOR_EVENT in the RB_WAIT bit in the ringbuffer control registers.
      On third generation chipsets and later, a write of 1 to this bit breaks
      the hang and returns the GPU to arbitration, i.e. the GPU should
      continue executing the reminder of the batchbuffer and return to normal
      operations.
      
      By adding this to hangcheck we can avoid a full GPU reset under these
      conditions.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      8c80b59b