linux-xiaomi-chiron/include
Chris Wilson 976b55f0e1 drm/i915: Allow a context to define its set of engines
Over the last few years, we have debated how to extend the user API to
support an increase in the number of engines, that may be sparse and
even be heterogeneous within a class (not all video decoders created
equal). We settled on using (class, instance) tuples to identify a
specific engine, with an API for the user to construct a map of engines
to capabilities. Into this picture, we then add a challenge of virtual
engines; one user engine that maps behind the scenes to any number of
physical engines. To keep it general, we want the user to have full
control over that mapping. To that end, we allow the user to constrain a
context to define the set of engines that it can access, order fully
controlled by the user via (class, instance). With such precise control
in context setup, we can continue to use the existing execbuf uABI of
specifying a single index; only now it doesn't automagically map onto
the engines, it uses the user defined engine map from the context.

v2: Fixup freeing of local on success of get_engines()
v3: Allow empty engines[]
v4: s/nengine/num_engines/
v5: Replace 64 limit on num_engines with a note that execbuf is
currently limited to only using the first 64 engines.
v6: Actually use the engines_mutex to guard the ctx->engines.

Testcase: igt/gem_ctx_engines
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190521211134.16117-2-chris@chris-wilson.co.uk
2019-05-22 08:40:31 +01:00
..
acpi ACPI: use different default debug value than ACPICA 2019-03-25 10:45:59 +01:00
asm-generic syscalls: Remove start and number from syscall_set_arguments() args 2019-04-05 09:27:23 -04:00
clocksource clocksource/arm_arch_timer: Store physical timer IRQ number for KVM on VHE 2019-02-19 21:05:22 +00:00
crypto crypto: export arc4 defines 2019-02-15 13:21:55 +08:00
drm drm/i915/icl: More workaround for port F detection due to broken VBTs 2019-05-14 13:46:59 +03:00
dt-bindings dt-bindings: reset: meson-g12a: Add missing USB2 PHY resets 2019-03-25 16:22:10 +01:00
keys KEYS: trusted: fix -Wvarags warning 2019-04-08 15:58:54 -07:00
kvm ARM: some cleanups, direct physical timer assignment, cache sanitization 2019-03-15 15:00:28 -07:00
linux drm/tegra: Changes for v5.2-rc1 2019-04-24 10:30:45 +10:00
math-emu
media media: vsp1: drm: Implement writeback support 2019-03-18 17:24:14 +02:00
memory
misc auxdisplay: charlcd: Introduce charlcd_free() helper 2019-03-17 08:48:16 +01:00
net nfc: nci: Potential off by one in ->pipes[] array 2019-04-06 15:05:07 -07:00
pcmcia
ras RAS: Use consistent types for UUIDs 2019-01-25 16:40:40 +01:00
rdma RDMA: Handle ucontext allocations by IB/core 2019-02-22 14:11:37 -07:00
scsi scsi: kill command serial number 2019-02-27 09:19:24 -05:00
soc IOMMU Updates for Linux v5.1 2019-03-10 12:29:52 -07:00
sound Linux 5.1-rc5 2019-04-15 15:51:49 +10:00
target scsi: target/iscsi: Rename a function and a function pointer 2019-02-04 21:34:49 -05:00
trace syscalls: Remove start and number from syscall_get_arguments() args 2019-04-05 09:26:43 -04:00
uapi drm/i915: Allow a context to define its set of engines 2019-05-22 08:40:31 +01:00
video media updates for v5.1-rc1 2019-03-09 14:45:54 -08:00
xen x86/xen: dont add memory above max allowed allocation 2019-02-18 06:52:51 +01:00