1. 22 Jun, 2011 1 commit
  2. 14 May, 2011 2 commits
  3. 24 Mar, 2011 2 commits
    • Chris Wilson's avatar
      Revert "drm/i915: Don't save/restore hardware status page address register" · f0c86024
      Chris Wilson authored
      This reverts commit a7a75c8f
      
      .
      
      There are two different variations on how Intel hardware addresses the
      "Hardware Status Page". One as a location in physical memory and the
      other as an offset into the virtual memory of the GPU, used in more
      recent chipsets. (The HWS itself is a cacheable region of memory which
      the GPU can write to without requiring CPU synchronisation, used for
      updating various details of hardware state, such as the position of
      the GPU head in the ringbuffer, the last breadcrumb seqno, etc).
      
      These two types of addresses were updated in different locations of code
      - one inline with the ringbuffer initialisation, and the other during
      device initialisation. (The HWS page is logically associated with
      the rings, and there is one HWS page per ring.) During resume, only the
      ringbuffers were being re-initialised along with the virtual HWS page,
      leaving the older physical address HWS untouched. This then caused a
      hang on the older gen3/4 (915GM, 945GM, 965GM) the first time we tried
      to synchronise the GPU as the breadcrumbs were never being updated.
      Reported-and-tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Reported-by: default avatarJan Niehusmann <jan@gondor.com>
      Reported-and-tested-by: default avatarJustin P. Mattock <justinmattock@gmail.com>
      Reported-and-tested-by: default avatarMichael "brot" Groh <brot@minad.de>
      Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Acked-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
      f0c86024
    • Chris Wilson's avatar
      Revert "drm/i915: Don't save/restore hardware status page address register" · 968b503e
      Chris Wilson authored
      This reverts commit a7a75c8f
      
      .
      
      There are two different variations on how Intel hardware addresses the
      "Hardware Status Page". One as a location in physical memory and the
      other as an offset into the virtual memory of the GPU, used in more
      recent chipsets. (The HWS itself is a cacheable region of memory which
      the GPU can write to without requiring CPU synchronisation, used for
      updating various details of hardware state, such as the position of
      the GPU head in the ringbuffer, the last breadcrumb seqno, etc).
      
      These two types of addresses were updated in different locations of code
      - one inline with the ringbuffer initialisation, and the other during
      device initialisation. (The HWS page is logically associated with
      the rings, and there is one HWS page per ring.) During resume, only the
      ringbuffers were being re-initialised along with the virtual HWS page,
      leaving the older physical address HWS untouched. This then caused a
      hang on the older gen3/4 (915GM, 945GM, 965GM) the first time we tried
      to synchronise the GPU as the breadcrumbs were never being updated.
      Reported-and-tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Reported-by: default avatarJan Niehusmann <jan@gondor.com>
      Reported-by: default avatarJustin P. Mattock <justinmattock@gmail.com>
      Reported-and-tested-by: default avatarMichael "brot" Groh <brot@minad.de>
      Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      968b503e
  4. 02 Mar, 2011 1 commit
  5. 07 Feb, 2011 1 commit
    • Jesse Barnes's avatar
      drm/i915: cleanup per-pipe reg usage · 9db4a9c7
      Jesse Barnes authored
      
      We had some conversions over to the _PIPE macros, but didn't get
      everything.  So hide the per-pipe regs with an _ (still used in a few
      places for legacy) and add a few _PIPE based macros, then make sure
      everyone uses them.
      
      [update: remove usage of non-existent no-op macro]
      [update 2: keep modesetting suspend/resume code, update to new reg names]
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      [ickle: stylistic cleanups for checkpatch and taste]
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      9db4a9c7
  6. 11 Jan, 2011 3 commits
  7. 20 Dec, 2010 1 commit
  8. 18 Dec, 2010 1 commit
  9. 05 Dec, 2010 1 commit
  10. 25 Nov, 2010 1 commit
  11. 21 Nov, 2010 1 commit
  12. 03 Nov, 2010 1 commit
  13. 21 Sep, 2010 1 commit
  14. 18 Sep, 2010 1 commit
    • Chris Wilson's avatar
      drm/i915: use GMBUS to manage i2c links · f899fc64
      Chris Wilson authored
      
      Use the GMBUS interface rather than direct bit banging to grab the EDID
      over DDC (and for other forms of auxiliary communication with external
      display controllers). The hope is that this method will be much faster
      and more reliable than bit banging for fetching EDIDs from buggy monitors
      or through switches, though we still preserve the bit banging as a
      fallback in case GMBUS fails.
      
      Based on an original patch by Jesse Barnes.
      
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      f899fc64
  15. 17 Sep, 2010 1 commit
  16. 22 Aug, 2010 2 commits
  17. 02 Aug, 2010 1 commit
  18. 12 Apr, 2010 1 commit
  19. 22 Feb, 2010 2 commits
  20. 06 Jan, 2010 1 commit
  21. 08 Dec, 2009 1 commit
  22. 07 Dec, 2009 1 commit
  23. 01 Dec, 2009 1 commit
  24. 12 Nov, 2009 1 commit
  25. 05 Nov, 2009 1 commit
  26. 23 Oct, 2009 1 commit
  27. 15 Oct, 2009 1 commit
  28. 13 Oct, 2009 1 commit
  29. 17 Sep, 2009 1 commit
  30. 04 Sep, 2009 1 commit
    • Jesse Barnes's avatar
      drm/i915: add dynamic clock frequency control · 652c393a
      Jesse Barnes authored
      
      There are several sources of unnecessary power consumption on Intel
      graphics systems. The first is the LVDS clock. TFTs don't suffer from
      persistence issues like CRTs, and so we can reduce the LVDS refresh rate
      when the screen is idle. It will be automatically upclocked when
      userspace triggers graphical activity. Beyond that, we can enable memory
      self refresh. This allows the memory to go into a lower power state when
      the graphics are idle. Finally, we can drop some clocks on the gpu
      itself. All of these things can be reenabled between frames when GPU
      activity is triggered, and so there should be no user visible graphical
      changes.
      Signed-off-by: default avatarJesse Barnes <jesse.barnes@intel.com>
      Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      652c393a
  31. 05 Aug, 2009 1 commit
  32. 10 Jul, 2009 1 commit
  33. 18 Jun, 2009 1 commit
  34. 04 Jun, 2009 1 commit