mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
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 |
||
|---|---|---|
| .. | ||
| amdgpu | ||
| bridge | ||
| dp-mst | ||
| imagination | ||
| rfc | ||
| xe | ||
| afbc.rst | ||
| automated_testing.rst | ||
| backlight.rst | ||
| driver-uapi.rst | ||
| drivers.rst | ||
| drm-client.rst | ||
| drm-internals.rst | ||
| drm-kms-helpers.rst | ||
| drm-kms.rst | ||
| drm-mm.rst | ||
| drm-uapi.rst | ||
| drm-usage-stats.rst | ||
| drm-vm-bind-async.rst | ||
| drm-vm-bind-locking.rst | ||
| i915.rst | ||
| implementation_guidelines.rst | ||
| index.rst | ||
| introduction.rst | ||
| kms-properties.csv | ||
| komeda-kms.rst | ||
| mcde.rst | ||
| meson.rst | ||
| msm-crash-dump.rst | ||
| panfrost.rst | ||
| pl111.rst | ||
| tegra.rst | ||
| todo.rst | ||
| tve200.rst | ||
| v3d.rst | ||
| vc4.rst | ||
| vga-switcheroo.rst | ||
| vgaarbiter.rst | ||
| vkms.rst | ||
| xen-front.rst | ||