linux-stable/drivers/gpu/drm/i915
Daniel Vetter 1286ff7397 i915: add dmabuf/prime buffer sharing support.
This adds handle->fd and fd->handle support to i915, this is to allow
for offloading of rendering in one direction and outputs in the other.

v2 from Daniel Vetter:
- fixup conflicts with the prepare/finish gtt prep work.
- implement ppgtt binding support.

Note that we have squat i-g-t testcoverage for any of the lifetime and
access rules dma_buf/prime support brings along. And there are quite a
few intricate situations here.

Also note that the integration with the existing code is a bit
hackish, especially around get_gtt_pages and put_gtt_pages. It imo
would be easier with the prep code from Chris Wilson's unbound series,
but that is for 3.6.

Also note that I didn't bother to put the new prepare/finish gtt hooks
to good use by moving the dma_buf_map/unmap_attachment calls in there
(like we've originally planned for).

Last but not least this patch is only compile-tested, but I've changed
very little compared to Dave Airlie's version. So there's a decent
chance v2 on drm-next works as well as v1 on 3.4-rc.

v3: Right when I've hit sent I've noticed that I've screwed up one
obj->sg_list (for dmar support) and obj->sg_table (for prime support)
disdinction. We should be able to merge these 2 paths, but that's
material for another patch.

v4: fix the error reporting bugs pointed out by ickle.

v5: fix another error, and stop non-gtt mmaps on shared objects
stop pread/pwrite on imported objects, add fake kmap

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-05-23 10:47:10 +01:00
..
dvo.h
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: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
i915_dma.c Merge tag 'drm-intel-next-2012-05-20' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-05-21 08:17:42 +01:00
i915_drv.c i915: add dmabuf/prime buffer sharing support. 2012-05-23 10:47:10 +01:00
i915_drv.h i915: add dmabuf/prime buffer sharing support. 2012-05-23 10:47:10 +01:00
i915_gem.c i915: add dmabuf/prime buffer sharing support. 2012-05-23 10:47:10 +01:00
i915_gem_debug.c drm/i915: Remove the list of pinned inactive objects 2012-05-03 11:18:11 +02:00
i915_gem_dmabuf.c i915: add dmabuf/prime buffer sharing support. 2012-05-23 10:47:10 +01:00
i915_gem_evict.c drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
i915_gem_execbuffer.c drm/i915: Check whether the ring is initialised prior to dispatch 2012-05-19 22:39:53 +02:00
i915_gem_gtt.c i915: add dmabuf/prime buffer sharing support. 2012-05-23 10:47:10 +01:00
i915_gem_stolen.c drm/i915: Split the stolen handling for GEM out of i915_dma.c 2012-05-03 11:18:11 +02:00
i915_gem_tiling.c drm/i915: Only the zap the VMA after updating the tiling parameters 2012-05-03 11:18:07 +02:00
i915_ioc32.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_irq.c drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
i915_reg.h drm/i915: implement hsw_write_infoframe 2012-05-20 17:52:35 +02:00
i915_suspend.c drm/i915: gen6_enable_rps() wants to be called after ring initialisation 2012-05-19 22:38:29 +02:00
i915_sysfs.c drm/i915: rc6 residency (fix the fix) 2012-04-23 09:30:14 +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: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_acpi.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02: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: account for only one PCH receiver on Haswell 2012-05-19 22:39:47 +02:00
intel_ddi.c drm/i915: prepare HDMI link for Haswell 2012-05-19 22:39:51 +02:00
intel_display.c drm: Constify drm_mode_config_funcs pointer 2012-05-22 10:35:07 +01:00
intel_dp.c drm/i915/dp: Probe branch/sink OUIs 2012-05-22 10:18:47 +01:00
intel_drv.h drm/i915: fixup infoframe support for sdvo 2012-05-20 17:11:11 +02: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 Linux 3.4-rc6 2012-05-07 14:02:14 +02:00
intel_hdmi.c drm/i915: implement hsw_write_infoframe 2012-05-20 17:52:35 +02:00
intel_i2c.c drm/i915: disable gmbus on i830 2012-05-19 22:39:55 +02:00
intel_lvds.c Linux 3.4-rc6 2012-05-07 14:02:14 +02: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 drm/i915: [sparse] __iomem fixes for opregion 2012-05-03 11:18:00 +02:00
intel_overlay.c drm/i915: rip out unnecessary calls to drm_mode_set_crtcinfo 2012-05-04 11:31:24 +02:00
intel_panel.c drm/backlight: initialize struct backlight_properties properly 2012-05-22 10:29:46 +01:00
intel_pm.c drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
intel_ringbuffer.c Merge remote-tracking branch 'airlied/drm-core-next' into drm-intel-next-queued 2012-05-08 13:39:59 +02:00
intel_ringbuffer.h drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
intel_sdvo.c drm/i915: fixup infoframe support for sdvo 2012-05-20 17:11:11 +02:00
intel_sdvo_regs.h misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
intel_sprite.c drm/i915: properly check for MODESET for kms driver ioctls 2012-05-03 11:18:13 +02:00
intel_tv.c drm/i915: rip out unnecessary calls to drm_mode_set_crtcinfo 2012-05-04 11:31:24 +02:00
Makefile i915: add dmabuf/prime buffer sharing support. 2012-05-23 10:47:10 +01:00