linux-stable/include/uapi/drm
Christian König f72a113a71 drm/radeon: add userptr support v8
This patch adds an IOCTL for turning a pointer supplied by
userspace into a buffer object.

It imposes several restrictions upon the memory being mapped:

1. It must be page aligned (both start/end addresses, i.e ptr and size).

2. It must be normal system memory, not a pointer into another map of IO
space (e.g. it must not be a GTT mmapping of another object).

3. The BO is mapped into GTT, so the maximum amount of memory mapped at
all times is still the GTT limit.

4. The BO is only mapped readonly for now, so no write support.

5. List of backing pages is only acquired once, so they represent a
snapshot of the first use.

Exporting and sharing as well as mapping of buffer objects created by
this function is forbidden and results in an -EPERM.

v2: squash all previous changes into first public version
v3: fix tabs, map readonly, don't use MM callback any more
v4: set TTM_PAGE_FLAG_SG so that TTM never messes with the pages,
    pin/unpin pages on bind/unbind instead of populate/unpopulate
v5: rebased on 3.17-wip, IOCTL renamed to userptr, reject any unknown
    flags, better handle READONLY flag, improve permission check
v6: fix ptr cast warning, use set_page_dirty/mark_page_accessed on unpin
v7: add warning about it's availability in the API definition
v8: drop access_ok check, fix VM mapping bits

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v4)
Reviewed-by: Jérôme Glisse <jglisse@redhat.com> (v4)
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-08-11 11:04:23 -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
drm_mode.h drm/crtc: Add property for aspect ratio 2014-07-23 07:05:24 +02:00
drm_sarea.h
exynos_drm.h drm/exynos: consider both case of vflip and hflip. 2013-01-04 15:54:33 +09:00
i810_drm.h
i915_drm.h drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl 2014-05-16 19:31:29 +02:00
Kbuild drm/msm: add a3xx gpu support 2013-08-24 14:57:18 -04:00
mga_drm.h
msm_drm.h drm/msm: validate flags, etc 2014-03-31 10:27:46 -04:00
nouveau_drm.h
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
radeon_drm.h drm/radeon: add userptr support v8 2014-08-11 11:04:23 -04:00
savage_drm.h
sis_drm.h
tegra_drm.h drm/tegra: Add SET/GET_FLAGS IOCTLs 2014-08-04 10:07:35 +02:00
via_drm.h
vmwgfx_drm.h drm/vmwgfx: Allow prime fds in the surface reference ioctls 2014-03-28 14:19:03 +01:00