1. 04 9月, 2015 1 次提交
  2. 26 8月, 2015 2 次提交
  3. 21 7月, 2015 1 次提交
  4. 23 6月, 2015 1 次提交
  5. 18 6月, 2015 1 次提交
    • M
      drm/i915: Reset request handling for gen8+ · 7fd2d269
      Mika Kuoppala 提交于
      In order for gen8+ hardware to guarantee that no context switch
      takes place during engine reset and that current context is properly
      saved, the driver needs to notify and query hw before commencing
      with reset.
      
      There are gpu hangs where the engine gets so stuck that it never will
      report to be ready for reset. We could proceed with reset anyway, but
      with some hangs with skl, the forced gpu reset will result in a system
      hang. By inspecting the unreadiness for reset seems to correlate with
      the probable system hang.
      
      We will only proceed with reset if all engines report that they
      are ready for reset. If root cause for system hang is found and
      can be worked around with another means, we can reconsider if
      we can reinstate full reset for unreadiness case.
      
      v2: -EIO, Recovery, gen8 (Chris, Tomas, Daniel)
      v3: updated commit msg
      v4: timeout_ms, simpler error path (Chris)
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=89959
      References: https://bugs.freedesktop.org/show_bug.cgi?id=90854
      Testcase: igt/gem_concurrent_blit/prw-blt-overwrite-source-read-rcs-forked
      Testcase: igt/gem_concurrent_blit/gtt-blt-overwrite-source-read-rcs-forked
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Tomas Elf <tomas.elf@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7fd2d269
  6. 15 6月, 2015 1 次提交
  7. 28 4月, 2015 1 次提交
  8. 10 4月, 2015 1 次提交
  9. 18 3月, 2015 2 次提交
    • C
      drm/i915: Disable the mmio.debug WARN after it fires · 48572edd
      Chris Wilson 提交于
      If we have a single unclaimed register, we will have lots. A WARN for
      each one makes the machine unusable and does not aid debugging. Convert
      the i915.mmio_debug option to a counter for how many WARNs to fire
      before shutting up. Even when i915.mmio_debug was disabled it would
      continue to shout an *ERROR* for every interrupt, without any
      information at all for debugging.
      
      The massive verbiage was added in
      commit 5978118c
      Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Date:   Wed Jul 16 17:49:29 2014 -0300
      
          drm/i915: reorganize the unclaimed register detection code
      
      v2: Automatically enable invalid mmio reporting for the *next* invalid
      access if mmio_debug is disabled by default. This should give us clearer
      debug information without polluting the logs too much.
      v3: Compile fixes, rebase.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      [danvet: Update modparam text per the thread.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      48572edd
    • M
      drm/i915: Do both mt and gen6 style forcewake reset on ivb probe · 6ea2556f
      Mika Kuoppala 提交于
      commit 05a2fb15 ("drm/i915: Consolidate forcewake code")
      failed to take into account that we have used to reset both
      the gen6 style and the multithreaded style forcewake registers.
      This is due to fact that ivb can use either, depending on how the
      bios has set up the machine.
      
      Mimic the old semantics before we have determined the correct variety
      and reset both before the ecobus probe.
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Huang Ying <ying.huang@intel.com>
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6ea2556f
  10. 10 3月, 2015 1 次提交
  11. 23 2月, 2015 1 次提交
  12. 14 2月, 2015 5 次提交
  13. 09 2月, 2015 1 次提交
  14. 31 1月, 2015 2 次提交
    • M
      drm/i915: Don't do posting reads on getting forcewake · 07859504
      Mika Kuoppala 提交于
      The checking for ack and also any subsequent mmio access
      will serialize with setting the forcewake bit. Drop the
      posting read as superfluous.
      
      Note that in the put side we still want to keep the posting read
      as it will ensure that the hw sees our forcewake release in a
      timely manner and doesn't keep the hw powered up.
      
      Comment from Chris:
      
      On Wed, Jan 28, 2015 at 05:54:14PM +0200, Mika Kuoppala wrote:
      > Ville Syrjälä <ville.syrjala@linux.intel.com> writes:
      > > IIRC the posting read from same cache line actually fixed real bugs. So
      > > I'm a bit worried about dropping them. But I suppose it's possible only
      > > the _put side was important for those bugs.
      >
      > I found these:
      >
      > commit 6af2d180
      > Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      > Date:   Thu Jul 26 16:24:50 2012 +0200
      >
      >     drm/i915: fix forcewake related hangs on snb
      >
      > commit 8dee3eea
      > Author: Ben Widawsky <ben@bwidawsk.net>
      > Date:   Sat Sep 1 22:59:50 2012 -0700
      >
      >     drm/i915: Never read FORCEWAKE
      >
      > https://bugs.freedesktop.org/show_bug.cgi?id=51738
      > https://bugs.freedesktop.org/show_bug.cgi?id=52424
      >
      > The snb here seems to survive gem_dummy_reloc_loop and
      > gem_ring_sync_loop in here with the get side posting removed.
      
      Note that we kept the once associated with #52424, but judging by my
      comments in #51738 the posting read is just a band aid anyway as a full
      mb() itself was not adequate.
      Suggested-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet: paste relevant review discussion in.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      07859504
    • M
      drm/i915: Do uncore early sanitize after domain init · f9b3927a
      Mika Kuoppala 提交于
      intel_uncore_early_sanitize() will reset the forcewake registers. When
      forcewake domains were introduced, the domain init was done after the
      sanitization of the forcewake registers. And as the resetting of
      registers use the domain accessors, we tried to reset the forcewake
      registers with unitialized forcewake domains and failed.
      
      Fix this by sanitizing after all the domains have been initialized. Do
      per domain clearing of forcewake register on domain init so that
      IVB can do early access to ECOBUS do determine the final configuration.
      
      This regression was introduced in
      
      commit 05a2fb15
      Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Date:   Mon Jan 19 16:20:43 2015 +0200
      
          drm/i915: Consolidate forcewake code
      
      v2: Carve out ellc detect, fw_domain_reset for ivb/ecobus (Chris)
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88805
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reported-by: NOlof Johansson <olof@lixom.net>
      Tested-by: Darren Hart <dvhart@linux.intel.com> (v1)
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f9b3927a
  15. 27 1月, 2015 8 次提交
  16. 15 12月, 2014 2 次提交
    • D
      drm/i915: Forcewake Register Range changes for CHV · db5ff4ac
      Deepak S 提交于
      According to updated BSpec, Render/Common/media Wells register range changed.
      Updating the same to match the spec and avoid extra forcewake for none
      forcewake range.
      
      v2: Update media forcewake range (Ville)
      Signed-off-by: NDeepak S <deepak.s@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      db5ff4ac
    • D
      drm/i915: Use BUILD_BUG if possible in the i915 WARN_ON · 5f77eeb0
      Daniel Vetter 提交于
      Faster feedback to errors is always better. This is inspired by the
      addition to WARN_ONs to mask/enable helpers for registers to make sure
      callers have the arguments ordered correctly: Pretty much always the
      arguments are static.
      
      We use WARN_ON(1) a lot in default switch statements though where we
      should always handle all cases. So add a new macro specifically for
      that.
      
      The idea to use __builtin_constant_p is from Chris Wilson.
      
      v2: Use the ({}) gcc-ism to avoid the static inline, suggested by
      Dave. My first attempt used __cond as the temp var, which is the same
      used by BUILD_BUG_ON, but with inverted sense. Hilarity ensued, so
      sprinkle i915 into the name.
      
      Also use a temporary variable to only evaluate the condition once,
      suggested by Damien.
      
      v3: It's crazy but apparently 32bit gcc can't compile out the
      BUILD_BUG_ON in a lot of cases and just falls over. I have no idea
      why, but until clue grows just disable this nifty idea on 32bit
      builds. Reported by 0-day builder.
      
      v4: Got it all wrong, apparently its the gcc version. We need 4.9+.
      Now reported by Imre.
      
      v5: Chris suggested to add the case to MISSING_CASE for speedier
      debug.
      
      v6: Even some gcc 4.9 versions don't see through the maze, so give up
      for now. Keep the skeleton and MISSING_CASE stuff though.
      
      Cc: Imre Deak <imre.deak@intel.com>
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Dave Gordon <david.s.gordon@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      5f77eeb0
  17. 03 12月, 2014 6 次提交
  18. 20 11月, 2014 2 次提交
  19. 18 11月, 2014 1 次提交
    • V
      drm/i915: Drop WaRsForcewakeWaitTC0:vlv · 2fe486c7
      Ville Syrjälä 提交于
      GEN6_GT_THREAD_STATUS_REG doesn't seem to exist on VLV. Reads just give
      0x0 no matter what the state of the render and media wells.
      
      There was also some hint in the Gunit HAS that thread status not being
      needed on VLV, and hence dropped when bringing stuff over from the IVB
      design. Not really a definite comment about the specific register itself
      though.
      
      Also the w/a itself is no longer listed for VLV in the database. It was
      there some time ago in the past, but I guess someone figured out the
      mistake and dropped it.
      
      So let's just drop it from the code as well.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: Deepak S<deepak.s@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2fe486c7