linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson 5d031e5b63 drm/i915: Remove use of the autoreported ringbuffer HEAD position
This is a revert of 6aa56062ea.

This was originally introduced to workaround reads of the ringbuffer
registers returning 0 on SandyBridge causing hangs due to ringbuffer
overflow. The root cause here was reads through the GT powerwell require
the forcewake dance, something we only learnt of later. Now it appears
that reading the reported head position from the HWS is returning
garbage, leading once again to hangs.

For example, on q35 the autoreported head reports:
  [  217.975608] head now 00010000, actual 00010000
  [  436.725613] head now 00200000, actual 00200000
  [  462.956033] head now 00210000, actual 00210010
  [  485.501409] head now 00400000, actual 00400020
  [  508.064280] head now 00410000, actual 00410000
  [  530.576078] head now 00600000, actual 00600020
  [  553.273489] head now 00610000, actual 00610018
which appears reasonably sane. In contrast, if we look at snb:
  [  141.970680] head now 00e10000, actual 00008238
  [  141.974062] head now 02734000, actual 000083c8
  [  141.974425] head now 00e10000, actual 00008488
  [  141.980374] head now 032b5000, actual 000088b8
  [  141.980885] head now 03271000, actual 00008950
  [  142.040628] head now 02101000, actual 00008b40
  [  142.180173] head now 02734000, actual 00009050
  [  142.181090] head now 00000000, actual 00000ae0
  [  142.183737] head now 02734000, actual 00009050

In addition, the automatic reporting of the head position is scheduled
to be defeatured in the future. It has no more utility, remove it.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45492
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tested-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2012-02-27 08:49:56 -08:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_debugfs.c drm/i915: fixup forcewake spinlock fallout in drpc debugfs function 2012-01-25 09:15:33 -08:00
i915_dma.c drm/i915: protect force_wake_(get|put) with the gt_lock 2012-01-19 11:51:31 -08:00
i915_drv.c drm/i915: Hold gt_lock across forcewake register reads 2012-01-19 12:28:53 -08:00
i915_drv.h drm/i915: protect force_wake_(get|put) with the gt_lock 2012-01-19 11:51:31 -08:00
i915_gem_debug.c
i915_gem_evict.c
i915_gem_execbuffer.c
i915_gem_gtt.c
i915_gem_tiling.c
i915_gem.c
i915_ioc32.c
i915_irq.c drm/i915: rip out the HWSTAM missed irq workaround 2012-01-19 15:45:44 -08:00
i915_mem.c
i915_reg.h drm/i915: gen7: Disable the RHWO optimization as it can cause GPU hangs. 2012-02-10 14:19:17 -08:00
i915_suspend.c drm/i915: Re-enable gen7 RC6 and GPU turbo after resume. 2012-01-24 13:25:10 -08:00
i915_trace_points.c
i915_trace.h
intel_acpi.c
intel_bios.c
intel_bios.h drm/i915: VBT Parser cleanup for eDP block 2012-01-13 08:37:44 -08:00
intel_crt.c
intel_display.c drm/i915: Prevent a machine hang by checking crtc->active before loading lut 2012-02-24 09:36:25 -08:00
intel_dp.c drm/i915: Force explicit bpp selection for intel_dp_link_required 2012-02-06 14:34:29 -08:00
intel_drv.h
intel_dvo.c
intel_fb.c
intel_hdmi.c
intel_i2c.c
intel_lvds.c drm/i915: no lvds quirk for AOpen MP45 2012-02-08 09:20:49 -08:00
intel_modes.c
intel_opregion.c
intel_overlay.c
intel_panel.c
intel_ringbuffer.c drm/i915: Remove use of the autoreported ringbuffer HEAD position 2012-02-27 08:49:56 -08:00
intel_ringbuffer.h
intel_sdvo_regs.h
intel_sdvo.c
intel_sprite.c drm/i915: sprite init failure on pre-SNB is not a failure 2012-01-13 15:49:27 -08:00
intel_tv.c
Makefile