1. 05 Aug, 2012 3 commits
  2. 27 Jul, 2012 1 commit
    • Daniel Vetter's avatar
      drm/i915: fix forcewake related hangs on snb · 6af2d180
      Daniel Vetter authored
      ... by adding seemingly redudant posting reads.
      
      This little dragon lair exploded the first time around when we've
      refactored the code a bit to use the common wait_for_atomic_us in
      "drm/i915: Group the GT routines together in both code and vtable",
      which caused QA to file fdo bug #51738.
      
      Chris Wilson entertained a few approaches to fixing #51738: Replacing
      the udelay(1) with the previously-used udelay(10) (or any other
      "sufficiently larger" delay), adding a posting read, or ditching the
      delay completely and using cpu_relax. We went with the cpu_relax and
      "915: Workaround hang with BSD and forcewake on SandyBridge". Which
      blew up in fdo bug #52424, but adding the posting read while still
      using cpu_relax seems to also fix that, it looks like the
      posting read is the important ingriedient to fix these rc6 related
      hangs on snb.
      
      Popular theories as to why this is like it is include:
      - A herd of pink elephants got royally angered somehow.
      
      - The gpu has internally different functional units and judging by the
        register offsets, the forcewake request register and the forcewake
        ack registers are _not_ in the same functional unit (or at least
        aren't reached through the same routes). Hence the posting read
        syncs up with the wrong block and gets the entire gpu confused.
      
      - ...
      
      As a minimal ducttape fix for 3.6, let's just put these posting reads
      into place again. We can try fancier approaches (like adding back the
      cpu_relax instead of the udelay) in -next.
      
      This (re-)fixes a regression introduced in
      
      commit 990bbdad
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Mon Jul 2 11:51:02 2012 -0300
      
          drm/i915: Group the GT routines together in both code and vtable
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Tested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Tested-by: default avatarDu Yan <yanx.du@intel.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52424
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51738uSigned-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      6af2d180
  3. 26 Jul, 2012 3 commits
  4. 25 Jul, 2012 8 commits
  5. 20 Jul, 2012 25 commits