linux/Documentation/gpu
Boris Brezillon 0f25e493a2 drm/panthor: Add uAPI
Panthor follows the lead of other recently submitted drivers with
ioctls allowing us to support modern Vulkan features, like sparse memory
binding:

- Pretty standard GEM management ioctls (BO_CREATE and BO_MMAP_OFFSET),
  with the 'exclusive-VM' bit to speed-up BO reservation on job submission
- VM management ioctls (VM_CREATE, VM_DESTROY and VM_BIND). The VM_BIND
  ioctl is loosely based on the Xe model, and can handle both
  asynchronous and synchronous requests
- GPU execution context creation/destruction, tiler heap context creation
  and job submission. Those ioctls reflect how the hardware/scheduler
  works and are thus driver specific.

We also have a way to expose IO regions, such that the usermode driver
can directly access specific/well-isolate registers, like the
LATEST_FLUSH register used to implement cache-flush reduction.

This uAPI intentionally keeps usermode queues out of the scope, which
explains why doorbell registers and command stream ring-buffers are not
directly exposed to userspace.

v6:
- Add Maxime's and Heiko's acks

v5:
- Fix typo
- Add Liviu's R-b

v4:
- Add a VM_GET_STATE ioctl
- Fix doc
- Expose the CORE_FEATURES register so we can deal with variants in the
  UMD
- Add Steve's R-b

v3:
- Add the concept of sync-only VM operation
- Fix support for 32-bit userspace
- Rework drm_panthor_vm_create to pass the user VA size instead of
  the kernel VA size (suggested by Robin Murphy)
- Typo fixes
- Explicitly cast enums with top bit set to avoid compiler warnings in
  -pedantic mode.
- Drop property core_group_count as it can be easily calculated by the
  number of bits set in l2_present.

Co-developed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20240229162230.2634044-2-boris.brezillon@collabora.com
2024-03-01 10:03:59 +01:00
..
amdgpu Documentation/gpu: Introduce a simple contribution list for display code 2024-01-29 15:39:11 -05:00
bridge
dp-mst
imagination drm/imagination: Numerous documentation fixes. 2023-11-28 18:56:03 +01:00
rfc drm/doc/rfc: Removing missing reference to xe.rst 2024-01-19 11:36:26 -05:00
xe drm/xe/doc: Include documentation about xe_assert() 2023-12-21 11:45:08 -05:00
afbc.rst
automated_testing.rst drm/doc: ci: Add IGT version details for flaky tests 2023-12-13 15:18:30 -03:00
backlight.rst
driver-uapi.rst drm/panthor: Add uAPI 2024-03-01 10:03:59 +01:00
drivers.rst drm/xe: Introduce a new DRM driver for Intel GPUs 2023-12-12 14:05:48 -05:00
drm-client.rst
drm-internals.rst drm/doc: internals: remove section on PCI legacy support 2024-01-12 13:58:35 +01:00
drm-kms-helpers.rst drm/eld: add helpers to modify the SADs of an ELD 2023-11-09 16:48:27 +02:00
drm-kms.rst drm: Allow drivers to indicate the damage helpers to ignore damage clips 2023-11-24 15:15:25 +01:00
drm-mm.rst Documentation/gpu: VM_BIND locking document 2023-11-29 20:54:43 +01:00
drm-uapi.rst drm/doc: use cross-references for macros 2023-10-23 17:03:58 +02:00
drm-usage-stats.rst Documentation/gpu: Update documentation on drm-shared-* 2024-02-16 12:52:49 +01:00
drm-vm-bind-async.rst Documentation/gpu: Add a VM_BIND async document 2023-10-17 10:38:07 +02:00
drm-vm-bind-locking.rst Documentation/gpu: VM_BIND locking document 2023-11-29 20:54:43 +01:00
i915.rst drm/i915: Add missing GSCCS documentation 2023-10-02 12:22:44 -04:00
implementation_guidelines.rst Documentation/gpu: VM_BIND locking document 2023-11-29 20:54:43 +01:00
index.rst Documentation/gpu: Add a VM_BIND async document 2023-10-17 10:38:07 +02:00
introduction.rst Documentation/gpu: Reference articles on Linux graphics stack 2024-01-19 16:50:54 +01:00
kms-properties.csv Documentation: Fix typos 2023-08-18 11:29:03 -06:00
komeda-kms.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
mcde.rst
meson.rst
msm-crash-dump.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
panfrost.rst drm/panfrost: Add fdinfo support GPU load metrics 2023-10-04 13:04:15 +02:00
pl111.rst drm: pl111: Update documentation 2020-07-23 10:06:22 +02:00
tegra.rst
todo.rst drm/todo: Add entry to rename drm_atomic_state 2023-12-18 11:45:40 +01:00
tve200.rst
v3d.rst
vc4.rst drm/vc4: Improve the KUnit documentation 2022-12-15 08:54:08 +01:00
vga-switcheroo.rst
vgaarbiter.rst PCI/VGA: Move vgaarb to drivers/pci 2022-03-09 18:30:46 -06:00
vkms.rst drm/vkms: drop "Rotation" TODO 2023-05-08 09:57:24 -03:00
xen-front.rst