linux/include/uapi/drm
Michel Thierry 101b506a7f drm/i915: Wa32bitGeneralStateOffset & Wa32bitInstructionBaseOffset
There are some allocations that must be only referenced by 32-bit
offsets. To limit the chances of having the first 4GB already full,
objects not requiring this workaround use DRM_MM_SEARCH_BELOW/
DRM_MM_CREATE_TOP flags

In specific, any resource used with flat/heapless (0x00000000-0xfffff000)
General State Heap (GSH) or Instruction State Heap (ISH) must be in a
32-bit range, because the General State Offset and Instruction State
Offset are limited to 32-bits.

Objects must have EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag to indicate if
they can be allocated above the 32-bit address range. To limit the
chances of having the first 4GB already full, objects will use
DRM_MM_SEARCH_BELOW + DRM_MM_CREATE_TOP flags when possible.

The libdrm user of the EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag is here:
http://lists.freedesktop.org/archives/intel-gfx/2015-September/075836.html

v2: Changed flag logic from neeeds_32b, to supports_48b.
v3: Moved 48-bit support flag back to exec_object. (Chris, Daniel)
v4: Split pin flags into PIN_ZONE_4G and PIN_HIGH; update PIN_OFFSET_MASK
to use last PIN_ defined instead of hard-coded value; use correct limit
check in eb_vma_misplaced. (Chris)
v5: Don't touch PIN_OFFSET_MASK and update workaround comment (Chris)
v6: Apply pin-high for ggtt too (Chris)
v7: Handle simultaneous pin-high and pin-mappable end correctly (Akash)
    Fix check for entries currently using +4GB addresses, use min_t and
    other polish in object_bind_to_vm (Chris)
v8: Commit message updated to point to libdrm patch.
v9: vmas are allocated in the correct ozone, so only check flag when the
    vma has not been allocated. (Chris)

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v4)
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-01 18:12:17 +02:00
..
amdgpu_drm.h drm/amdgpu: Drop drm/ prefix for including drm.h in amdgpu_drm.h 2015-07-29 15:48:05 -04:00
armada_drm.h DRM: Armada: Add Armada DRM driver 2013-10-12 10:13:40 +01:00
drm_fourcc.h drm/fourcc: Add formats R8, RG88, GR88 2015-07-09 15:12:41 +02:00
drm_mode.h drm: cleanup modesetting ioctls, one param per line 2015-09-08 13:45:47 +02:00
drm_sarea.h
drm.h drm/mode: Add user blob-creation ioctl 2015-05-22 16:18:28 +02:00
exynos_drm.h drm/exynos: use drm generic mmap interface 2014-09-20 01:00:13 +09:00
i810_drm.h
i915_drm.h drm/i915: Wa32bitGeneralStateOffset & Wa32bitInstructionBaseOffset 2015-10-01 18:12:17 +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: use __s32, __s64, __u32 and __u64 from linux/types.h for uabi 2015-06-11 13:11:05 -04:00
nouveau_drm.h drm/nouveau/gem: allow user-space to specify an object should be coherent 2015-04-14 17:00:46 +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
radeon_drm.h drm/radeon: Drop drm/ prefix for including drm.h in radeon_drm.h 2015-07-29 15:48:04 -04:00
savage_drm.h
sis_drm.h
tegra_drm.h drm/tegra: gem: Return 64-bit offset for mmap(2) 2015-04-02 18:49:23 +02:00
via_drm.h
vmwgfx_drm.h drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00