1. 22 7月, 2021 2 次提交
    • M
      drm/i915/icl: Drop a couple unnecessary workarounds · 131b1252
      Matt Roper 提交于
      While doing a quick sanity check of the ICL workarounds in the driver I
      noticed a few things that should be updated:
      
       * There's no mention in the bspec that WaPipelineFlushCoherentLines
         is needed on gen11 (both the current WA database and the old,
         deprecated page 20196 were checked); it appears this might have just
         been copied from the gen9 list?  Even if this were needed, it doesn't
         seem like this was the correct implementation anyway since the gen9
         workaround is supposed to be implemented in the indirect context bb
         (as we do in gen8_emit_flush_coherentl3_wa() on gen8/gen9).
      
       * WaForwardProgressSoftReset does not appear in the current workaround
         database.  The old deprecated workaround list has a note indicating
         the workaround was dropped in 2017, so we should be safe to drop it
         from the code too.
      
      While we're at it, add the formal workaround ID number to
      WaDisableBankHangMode (our hardware team made a transition from
      text-based workaround names to ID numbers partway through the
      development of ICL, which is why some workarounds only have names, some
      only have numbers, and some have both).
      
      Bspec: 33450
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210717051426.4120328-3-matthew.d.roper@intel.com
      131b1252
    • M
      drm/i915: Fix application of WaInPlaceDecompressionHang · f4fa096a
      Matt Roper 提交于
      On SKL we've been applying this workaround on H0+ steppings, which is
      actually backwards; H0 is supposed to be the first stepping where the
      workaround is no longer needed.  Flip the bounds so that the workaround
      applies to all steppings _before_ H0.
      
      On BXT we've been applying this workaround to all steppings, but the
      bspec tells us it's only needed until C0.  Pre-C0 GT steppings only
      appeared in pre-production hardware, which we no longer support in the
      driver, so we can drop the workaround completely for this platform.
      
      On ICL we've been applying this workaround to all steppings, but there
      doesn't seem to be any indication that this workaround was ever needed
      for this platform (even now-deprecated page 20196 of the bspec doesn't
      mention it).  We can go ahead and drop it.
      
      I also don't see any mention of this workaround being needed for KBL,
      although this may be an oversight since the workaround is needed for all
      steppings of CFL.  I'll leave the workaround in place for KBL to be
      safe.
      
      Bspec: 14091, 33450
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210717051426.4120328-2-matthew.d.roper@intel.com
      f4fa096a
  2. 21 7月, 2021 2 次提交
  3. 20 7月, 2021 1 次提交
  4. 17 7月, 2021 5 次提交
  5. 15 7月, 2021 12 次提交
  6. 14 7月, 2021 11 次提交
  7. 11 7月, 2021 1 次提交
    • V
      drm/i915/gt: Fix -EDEADLK handling regression · 78d2ad7e
      Ville Syrjälä 提交于
      The conversion to ww mutexes failed to address the fence code which
      already returns -EDEADLK when we run out of fences. Ww mutexes on
      the other hand treat -EDEADLK as an internal errno value indicating
      a need to restart the operation due to a deadlock. So now when the
      fence code returns -EDEADLK the higher level code erroneously
      restarts everything instead of returning the error to userspace
      as is expected.
      
      To remedy this let's switch the fence code to use a different errno
      value for this. -ENOBUFS seems like a semi-reasonable unique choice.
      Apart from igt the only user of this I could find is sna, and even
      there all we do is dump the current fence registers from debugfs
      into the X server log. So no user visible functionality is affected.
      If we really cared about preserving this we could of course convert
      back to -EDEADLK higher up, but doesn't seem like that's worth
      the hassle here.
      
      Not quite sure which commit specifically broke this, but I'll
      just attribute it to the general gem ww mutex work.
      
      Cc: stable@vger.kernel.org
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Thomas Hellström <thomas.hellstrom@intel.com>
      Testcase: igt/gem_pread/exhaustion
      Testcase: igt/gem_pwrite/basic-exhaustion
      Testcase: igt/gem_fenced_exec_thrash/too-many-fences
      Fixes: 80f0b679 ("drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2.")
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210630164413.25481-1-ville.syrjala@linux.intel.comReviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      78d2ad7e
  8. 09 7月, 2021 6 次提交