diff options
author | Dave Airlie <airlied@redhat.com> | 2018-09-10 21:52:54 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-09-10 21:53:12 -0400 |
commit | b1c1566822ab489a945dfdafee651aa29de160c7 (patch) | |
tree | 3e8e035ab581dac7ce3b77ce4a7b6ab6f14b29ea /drivers/gpu/drm/i915/i915_request.c | |
parent | 1f3eb3461f58a4c48da67af4a8c4deb4d3c97214 (diff) | |
parent | a28957b8f10be714f076fb3981a3b1a0318c48c2 (diff) |
Merge tag 'drm-intel-next-2018-09-06-2' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
Merge tag 'gvt-next-2018-09-04'
drm-intel-next-2018-09-06-1:
UAPI Changes:
- GGTT coherency GETPARAM: GGTT has turned out to be non-coherent for some
platforms, which we've failed to communicate to userspace so far. SNA was
modified to do extra flushing on non-coherent GGTT access, while Mesa will
mitigate by always requiring WC mapping (which is non-coherent anyway).
- Neuter Resource Streamer uAPI: There never really were users for the feature,
so neuter it while keeping the interface bits for compatibility. This is a
long due item from past.
Cross-subsystem Changes:
- Backmerge of branch drm-next-4.19 for DP_DPCD_REV_14 changes
Core Changes:
- None
Driver Changes:
- A load of Icelake (ICL) enabling patches (Paulo, Manasi)
- Enabled full PPGTT for IVB,VLV and HSW (Chris)
- Bugzilla #107113: Distribute DDB based on display resolutions (Mahesh)
- Bugzillas #100023,#107476,#94921: Support limited range DP displays (Jani)
- Bugzilla #107503: Increase LSPCON timeout (Fredrik)
- Avoid boosting GPU due to an occasional stall in interactive workloads (Chris)
- Apply GGTT coherency W/A only for affected systems instead of all (Chris)
- Fix for infinite link training loop for faulty USB-C MST hubs (Nathan)
- Keep KMS functional on Gen4 and earlier when GPU is wedged (Chris)
- Stop holding ppGTT reference from closed VMAs (Chris)
- Clear error registers after error capture (Lionel)
- Various Icelake fixes (Anusha, Jyoti, Ville, Tvrtko)
- Add missing Coffeelake (CFL) PCI IDs (Rodrigo)
- Flush execlists tasklet directly from reset-finish (Chris)
- Fix LPE audio runtime PM (Chris)
- Fix detection of out of range surface positions (GLK/CNL) (Ville)
- Remove wait-for-idle for PSR2 (Dhinakaran)
- Power down existing display hardware resources when display is disabled (Chris)
- Don't allow runtime power management if RC6 doesn't exist (Chris)
- Add debugging checks for runtime power management paths (Imre)
- Increase symmetry in display power init/fini paths (Imre)
- Isolate GVT specific macros from i915_reg.h (Lucas)
- Increase symmetry in power management enable/disable paths (Chris)
- Increase IP disable timeout to 100 ms to avoid DRM_ERROR (Imre)
- Fix memory leak from HDMI HDCP write function (Brian, Rodrigo)
- Reject Y/Yf tiling on interlaced modes (Ville)
- Use a cached mapping for the physical HWS on older gens (Chris)
- Force slow path of writing relocations to buffer if unable to write to userspace (Chris)
- Do a full device reset after being wedged (Chris)
- Keep forcewake counts over reset (in case of debugfs user) (Imre, Chris)
- Avoid false-positive errors from power wells during init (Imre)
- Reset engines forcibly in exchange of declaring whole device wedged (Mika)
- Reduce context HW ID lifetime in preparation for Icelake (Chris)
- Attempt to recover from module load failures (Chris)
- Keep select interrupts over a reset to avoid missing/losing them (Chris)
- GuC submission backend improvements (Jakub)
- Terminate context images with BB_END (Chris, Lionel)
- Make GCC evaluate GGTT view struct size assertions again (Ville)
- Add selftest to exercise suspend/hibernate code-paths for GEM (Chris)
- Use a full emulation of a user ppgtt context in selftests (Chris)
- Exercise resetting in the middle of a wait-on-fence in selftests (Chris)
- Fix coherency issues on selftests for Baytrail (Chris)
- Various other GEM fixes / self-test updates (Chris, Matt)
- GuC doorbell self-tests (Daniele)
- PSR mode control through debugfs for IGTs (Maarten)
- Degrade expected WM latency errors to DRM_DEBUG_KMS (Chris)
- Cope with errors better in MST link training (Dhinakaran)
- Fix WARN on KBL external displays (Azhar)
- Power well code cleanups (Imre)
- Fixes to PSR debugging (Dhinakaran)
- Make forcewake errors louder for easier catching in CI (WARNs) (Chris)
- Fortify tiling code against programmer errors (Chris)
- Bunch of fixes for CI exposed corner cases (multiple authors, mostly Chris)
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180907105446.GA22860@jlahtine-desk.ger.corp.intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/i915_request.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_request.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index 5c2c93cbab12..09ed48833b54 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c | |||
@@ -527,7 +527,7 @@ void __i915_request_submit(struct i915_request *request) | |||
527 | 527 | ||
528 | seqno = timeline_get_seqno(&engine->timeline); | 528 | seqno = timeline_get_seqno(&engine->timeline); |
529 | GEM_BUG_ON(!seqno); | 529 | GEM_BUG_ON(!seqno); |
530 | GEM_BUG_ON(i915_seqno_passed(intel_engine_get_seqno(engine), seqno)); | 530 | GEM_BUG_ON(intel_engine_signaled(engine, seqno)); |
531 | 531 | ||
532 | /* We may be recursing from the signal callback of another i915 fence */ | 532 | /* We may be recursing from the signal callback of another i915 fence */ |
533 | spin_lock_nested(&request->lock, SINGLE_DEPTH_NESTING); | 533 | spin_lock_nested(&request->lock, SINGLE_DEPTH_NESTING); |
@@ -579,8 +579,7 @@ void __i915_request_unsubmit(struct i915_request *request) | |||
579 | */ | 579 | */ |
580 | GEM_BUG_ON(!request->global_seqno); | 580 | GEM_BUG_ON(!request->global_seqno); |
581 | GEM_BUG_ON(request->global_seqno != engine->timeline.seqno); | 581 | GEM_BUG_ON(request->global_seqno != engine->timeline.seqno); |
582 | GEM_BUG_ON(i915_seqno_passed(intel_engine_get_seqno(engine), | 582 | GEM_BUG_ON(intel_engine_has_completed(engine, request->global_seqno)); |
583 | request->global_seqno)); | ||
584 | engine->timeline.seqno--; | 583 | engine->timeline.seqno--; |
585 | 584 | ||
586 | /* We may be recursing from the signal callback of another i915 fence */ | 585 | /* We may be recursing from the signal callback of another i915 fence */ |
@@ -1205,7 +1204,7 @@ static bool __i915_spin_request(const struct i915_request *rq, | |||
1205 | * it is a fair assumption that it will not complete within our | 1204 | * it is a fair assumption that it will not complete within our |
1206 | * relatively short timeout. | 1205 | * relatively short timeout. |
1207 | */ | 1206 | */ |
1208 | if (!i915_seqno_passed(intel_engine_get_seqno(engine), seqno - 1)) | 1207 | if (!intel_engine_has_started(engine, seqno)) |
1209 | return false; | 1208 | return false; |
1210 | 1209 | ||
1211 | /* | 1210 | /* |
@@ -1222,7 +1221,7 @@ static bool __i915_spin_request(const struct i915_request *rq, | |||
1222 | irq = READ_ONCE(engine->breadcrumbs.irq_count); | 1221 | irq = READ_ONCE(engine->breadcrumbs.irq_count); |
1223 | timeout_us += local_clock_us(&cpu); | 1222 | timeout_us += local_clock_us(&cpu); |
1224 | do { | 1223 | do { |
1225 | if (i915_seqno_passed(intel_engine_get_seqno(engine), seqno)) | 1224 | if (intel_engine_has_completed(engine, seqno)) |
1226 | return seqno == i915_request_global_seqno(rq); | 1225 | return seqno == i915_request_global_seqno(rq); |
1227 | 1226 | ||
1228 | /* | 1227 | /* |