linux-sg2042/include/uapi/drm
Chris Wilson 6a2c4232ec drm/i915: Make the physical object coherent with GTT
Currently objects for which the hardware needs a contiguous physical
address are allocated a shadow backing storage to satisfy the contraint.
This shadow buffer is not wired into the normal obj->pages and so the
physical object is incoherent with accesses via the GPU, GTT and CPU. By
setting up the appropriate scatter-gather table, we can allow userspace
to access the physical object via either a GTT mmaping of or by rendering
into the GEM bo. However, keeping the CPU mmap of the shmemfs backing
storage coherent with the contiguous shadow is not yet possible.
Fortuituously, CPU mmaps of objects requiring physical addresses are not
expected to be coherent anyway.

This allows the physical constraint of the GEM object to be transparent
to userspace and allow it to efficiently render into or update them via
the GTT and GPU.

v2: Fix leak of pci handle spotted by Ville
v3: Remove the now duplicate call to detach_phys_object during free.
v4: Wait for rendering before pwrite. As this patch makes it possible to
render into the phys object, we should make it correct as well!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-14 10:29:18 +01:00
..
Kbuild drm/msm: add a3xx gpu support 2013-08-24 14:57:18 -04:00
armada_drm.h DRM: Armada: Add Armada DRM driver 2013-10-12 10:13:40 +01:00
drm.h drm: Driver-specific ioctls range from 0x40 to 0x9f 2014-06-18 13:50:16 +02:00
drm_fourcc.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
drm_mode.h drm/crtc: Add property for aspect ratio 2014-07-23 07:05:24 +02:00
drm_sarea.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
exynos_drm.h drm/exynos: use drm generic mmap interface 2014-09-20 01:00:13 +09:00
i810_drm.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
i915_drm.h drm/i915: Make the physical object coherent with GTT 2014-11-14 10:29:18 +01:00
mga_drm.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
msm_drm.h drm/msm: validate flags, etc 2014-03-31 10:27:46 -04:00
nouveau_drm.h drm/nouveau: expose the full object/event interfaces to userspace 2014-08-10 05:28:18 +10:00
omap_drm.h drm/omap: move out of staging 2013-02-16 17:38:06 -05:00
qxl_drm.h drm: add new QXL driver. (v1.4) 2013-04-12 13:51:07 +10:00
r128_drm.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
radeon_drm.h drm/radeon: add RADEON_GEM_NO_CPU_ACCESS BO creation flag (v4) 2014-09-10 11:29:46 -04:00
savage_drm.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
sis_drm.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
tegra_drm.h drm/tegra: Add SET/GET_FLAGS IOCTLs 2014-08-04 10:07:35 +02:00
via_drm.h UAPI: (Scripted) Disintegrate include/drm 2012-10-04 18:21:50 +01:00
vmwgfx_drm.h drm/vmwgfx: Fix drm.h include 2014-09-12 13:57:49 +10:00