OpenCloudOS-Kernel/drivers/gpu/drm/i915
Chris Wilson aec347ab19 drm/i915: Delay the release of the forcewake by a jiffie
Obtaining the forcwake requires expensive and time consuming
serialisation. And we often try to obtain the forcewake multiple times
in very quick succession. We can reduce the overhead of these sequences
by delaying the forcewake release, and so not hammer the hw quite so
hard.

I was hoping this would help with the spurious
[drm:__gen6_gt_force_wake_mt_get] *ERROR* Timed out waiting for forcewake old ack to clear.
found on Haswell. Alas not.

v2: Fix teardown ordering - unmap the regs after turning off forcewake,
and make sure we do turn off forcewake - both found by Ville.

v3: As we introduce intel_uncore_fini(), use it to make sure everything
is disabled before we hand back to the BIOS.

Note: I have no claims for improved performance, stablity or power
comsumption for this patch. We should not be hitting the registers often
enough for this to improve benchmarks, but given the nature of our hw it
is likely to improve long term stability.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-01 07:45:13 +02:00
..
Makefile drm/i915: add VLV DSI PLL Calculations 2013-09-04 17:34:48 +02:00
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
dvo_ch7xxx.c drm/i915: dvo_ch7xxx: fix vsync polarity setting 2013-07-25 16:10:22 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
i915_debugfs.c drm/i915: Calculate PSR register offsets from base + gen 2013-10-01 07:45:12 +02:00
i915_dma.c drm/i915: Delay the release of the forcewake by a jiffie 2013-10-01 07:45:13 +02:00
i915_drv.c drm/i915: Call intel_uncore_early_sanitize() during resume 2013-10-01 07:45:10 +02:00
i915_drv.h drm/i915: Delay the release of the forcewake by a jiffie 2013-10-01 07:45:13 +02:00
i915_gem.c drm/i915: Do not unlock upon error in i915_gem_idle() 2013-10-01 07:45:03 +02:00
i915_gem_context.c drm/i915: Do remaps for all contexts 2013-09-19 20:39:56 +02:00
i915_gem_debug.c drm/i915: Fix #endif comment 2013-08-09 10:45:52 +02:00
i915_gem_dmabuf.c drm/i915: Pin pages whilst mapping the dma-buf 2013-09-03 19:17:58 +02:00
i915_gem_evict.c drm/i915: evict VM instead of everything 2013-09-12 21:58:22 +02:00
i915_gem_execbuffer.c drm/i915: Use unsigned for overflow checks in execbuf 2013-10-01 07:45:03 +02:00
i915_gem_gtt.c drm/i915: Use kcalloc more 2013-10-01 07:45:01 +02:00
i915_gem_stolen.c Linux 3.12-rc2 2013-09-24 09:32:53 +02:00
i915_gem_tiling.c drm/i915: Use kcalloc more 2013-10-01 07:45:01 +02:00
i915_gpu_error.c drm/i915: Use kcalloc more 2013-10-01 07:45:01 +02:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c Linux 3.12-rc2 2013-09-24 09:32:53 +02:00
i915_reg.h drm/i915: precendence bug in GT_PARITY_ERROR() 2013-10-01 07:45:13 +02:00
i915_suspend.c drm/i915: don't save/restore LBB on Gen5+ 2013-09-13 11:40:45 +02:00
i915_sysfs.c drm/i915: cleanup a min_t() cast 2013-09-20 23:50:01 +02:00
i915_trace.h drm/i915: plumb VM into bind/unbind code 2013-08-08 14:04:20 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_ums.c drm/i915: scrap register address storage 2013-06-10 19:54:14 +02:00
intel_acpi.c i915: fix ACPI _DSM warning 2013-08-05 19:04:05 +02:00
intel_bios.c drm/i915: Rip out SUPPORTS_EDP 2013-10-01 07:45:07 +02:00
intel_bios.h drm/i915: use the HDMI DDI buffer translations from VBT 2013-10-01 07:45:04 +02:00
intel_crt.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_ddi.c drm/i915: don't init DP or HDMI when not supported by DDI port 2013-10-01 07:45:06 +02:00
intel_display.c drm/i915: Fix intel_crtc_mode_get() mode clock 2013-10-01 07:45:12 +02:00
intel_dp.c drm/i915: Calculate PSR register offsets from base + gen 2013-10-01 07:45:12 +02:00
intel_drv.h drm/i915: Ditch INTELFB_CONN_LIMIT 2013-10-01 07:45:02 +02:00
intel_dsi.c drm/i915: Band Gap WA 2013-09-04 17:34:49 +02:00
intel_dsi.h drm/i915: add VLV DSI PLL Calculations 2013-09-04 17:34:48 +02:00
intel_dsi_cmd.c drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_cmd.h drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_pll.c drm/i915: Use adjusted_mode in DSI PLL calculations 2013-09-16 23:36:38 +02:00
intel_dvo.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_fb.c drm/i915: Ditch INTELFB_CONN_LIMIT 2013-10-01 07:45:02 +02:00
intel_hdmi.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_i2c.c drm/i915: allow package C8+ states on Haswell (disabled) 2013-08-23 14:52:33 +02:00
intel_lvds.c drm/i915: VBT's child_device_config changes over time 2013-10-01 07:45:04 +02:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c Linux 3.12-rc2 2013-09-24 09:32:53 +02:00
intel_overlay.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_panel.c Linux 3.12-rc2 2013-09-24 09:32:53 +02:00
intel_pm.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_ringbuffer.c drm/i915: s/HAS_L3_GPU_CACHE/HAS_L3_DPF 2013-09-19 20:41:00 +02:00
intel_ringbuffer.h drm/i915: Write RING_TAIL once per-request 2013-09-10 15:35:58 +02:00
intel_sdvo.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sideband.c drm/i915: Add additional pipe parameter for vlv_dpio_read and vlv_dpio_write. v2 2013-09-05 15:04:36 +02:00
intel_sprite.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_tv.c drm/i915: VBT's child_device_config changes over time 2013-10-01 07:45:04 +02:00
intel_uncore.c drm/i915: Delay the release of the forcewake by a jiffie 2013-10-01 07:45:13 +02:00