kernel-ark/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 Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_ch7017.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_ivch.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_sil164.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo_tfp410.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
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 drm/i915: drop KM_USER0 argument to k(un)map_atomic 2011-10-20 15:26:37 -07:00
i915_gem_evict.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_gem_execbuffer.c Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2012-01-10 11:04:36 -08:00
i915_gem_gtt.c drm/i915: ILK + VT-d workaround 2011-10-20 15:26:39 -07:00
i915_gem_tiling.c drm/i915: simplify swapin/out swizzle checking a bit 2011-10-20 14:11:18 -07:00
i915_gem.c drm/i915: Make the fallback IRQ wait not sleep. 2012-01-03 09:31:16 -08:00
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 Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
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 Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_acpi.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_bios.c drm/i915: Remove "i2c_speed" nonsense from child device table 2011-10-20 14:11:15 -07:00
intel_bios.h drm/i915: VBT Parser cleanup for eDP block 2012-01-13 08:37:44 -08:00
intel_crt.c CHROMIUM: i915: Add DMI override to skip CRT initialization on ZGB 2012-01-12 12:30:25 -08:00
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 drm: introduce drm_can_sleep and use in intel/radeon drivers. (v2) 2012-01-06 10:01:35 +00:00
intel_dvo.c drm/i915: cleanup per-pipe reg usage 2011-02-07 21:17:15 +00:00
intel_fb.c drm/i915: add SNB and IVB video sprite support v6 2012-01-03 09:31:09 -08:00
intel_hdmi.c drm/i915: HDMI hot remove notification to audio driver 2011-12-19 19:15:48 -08:00
intel_i2c.c gpu: Add export.h as required to drivers/gpu files. 2011-10-31 19:32:03 -04:00
intel_lvds.c drm/i915: no lvds quirk for AOpen MP45 2012-02-08 09:20:49 -08:00
intel_modes.c drm/i915: pass ELD to HDMI/DP audio driver 2011-09-21 14:52:41 -07:00
intel_opregion.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_overlay.c Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
intel_panel.c drm/i915: Treat pre-gen4 backlight duty cycle value consistently 2011-11-23 13:07:13 -08:00
intel_ringbuffer.c drm/i915: Remove use of the autoreported ringbuffer HEAD position 2012-02-27 08:49:56 -08:00
intel_ringbuffer.h drm/i915: Dumb down the semaphore logic 2011-09-21 14:52:41 -07:00
intel_sdvo_regs.h misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
intel_sdvo.c drm/i915/sdvo: always set positive sync polarity 2012-01-06 14:11:17 -08:00
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 drm/i915: Removing TV Out modes. 2012-01-06 13:54:12 -08:00
Makefile drm/i915: add SNB and IVB video sprite support v6 2012-01-03 09:31:09 -08:00