OpenCloudOS-Kernel/drivers/gpu/drm/i915
Chris Wilson f84131905b drm/i915: Allow concurrent read access between CPU and GPU domain
Similar to allowing a buffer to be simultaneously read by the GPU and
through the GTT, we wish to allow readback of the pages through the CPU
domain whilst they are also being read by the GPU. Domain coherency
is managed by allowing multiple readers, but only a single writer.

This is used by mesa for its program cache which it may search for every
new program every frame and then renews should it need to add. During
renewal, mesa copies the program bo currently executing through a CPU
mapping onto the new bo. This patch allows the search and that copy to
proceed without causing a stall on the current batch.

Testcase: i-g-t/tests/gem_cpu_concurrent_blit
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-12 21:14:10 +02:00
..
Makefile drm/i915: rc6 in sysfs 2012-04-12 21:14:09 +02:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07: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
i915_debugfs.c drm/i915: add rc6 residency times to debugfs 2012-04-12 21:14:04 +02:00
i915_dma.c drm/i915: rc6 in sysfs 2012-04-12 21:14:09 +02:00
i915_drv.c drm/i915: use semaphores for the display plane 2012-04-12 21:14:05 +02:00
i915_drv.h drm/i915: rc6 in sysfs 2012-04-12 21:14:09 +02:00
i915_gem.c drm/i915: Allow concurrent read access between CPU and GPU domain 2012-04-12 21:14:10 +02: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 drm/i915: No need to search again after retiring requests 2012-02-27 17:37:13 +01:00
i915_gem_execbuffer.c drm/i915: use semaphores for the display plane 2012-04-12 21:14:05 +02:00
i915_gem_gtt.c drm/i915: simplify ppgtt setup 2012-04-12 21:14:10 +02:00
i915_gem_tiling.c drm/i915: swizzling support for snb/ivb 2012-02-08 23:16:24 +01:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c drm/i915: dump the DMA fetch addr register on pre-gen6 2012-04-09 18:04:09 +02:00
i915_reg.h drm/i915: add rc6 residency times to debugfs 2012-04-12 21:14:04 +02:00
i915_suspend.c drm/i915: Re-enable gen7 RC6 and GPU turbo after resume. 2012-01-24 13:25:10 -08:00
i915_sysfs.c drm/i915: rc6 in sysfs 2012-04-12 21:14:09 +02:00
i915_trace.h Drivers: i915: Fix all space related issues. 2011-09-19 18:01:47 -07:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
intel_acpi.c drm/i915: remove ACPI related DRM_ERRORs 2012-03-02 19:23:44 +01:00
intel_bios.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
intel_bios.h drm/i915: VBT Parser cleanup for eDP block 2012-01-13 08:37:44 -08:00
intel_crt.c drm/i915: make quirks more verbose 2012-04-09 18:04:09 +02:00
intel_display.c drm/i915: make DP configuration vars less confusing in ironlake_crtc_mode_se 2012-04-12 21:14:10 +02:00
intel_dp.c drm/i915: use the new hdmi_force_audio enum more 2012-02-27 17:45:36 +01:00
intel_drv.h Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
intel_dvo.c drm/i915/intel_i2c: refactor using intel_gmbus_get_adapter 2012-03-28 14:40:44 +02:00
intel_fb.c drm/i915: suspend fbdev device around suspend/hibernate 2012-03-29 07:44:27 +01:00
intel_hdmi.c drm/i915: Enable HDMI on ValleyView 2012-03-29 00:00:09 +02:00
intel_i2c.c drm/i915/intel_i2c: remove POSTING_READ() from gmbus transfers 2012-04-12 21:14:08 +02:00
intel_lvds.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
intel_modes.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
intel_opregion.c i915: Add and use pr_fmt and pr_<level> 2012-03-18 21:50:21 +01:00
intel_overlay.c Revert "drivers/gpu/drm/i915/intel_overlay.c needs seq_file.h" 2012-02-16 10:31:23 +01:00
intel_panel.c i915: Add and use pr_fmt and pr_<level> 2012-03-18 21:50:21 +01:00
intel_ringbuffer.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
intel_ringbuffer.h drm/i915: open code gen6+ ring irqs 2012-04-09 18:04:06 +02:00
intel_sdvo.c drm/i915/sdvo: Include YRPB as an additional TV output type 2012-04-09 18:04:08 +02:00
intel_sdvo_regs.h misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
intel_sprite.c drm/i915: Ironlake shares the same video sprite controls as Sandybridge 2012-04-12 21:14:09 +02:00
intel_tv.c drm/i915: reinstate GM45 TV detection fix 2012-03-27 13:12:28 +02:00