drm/nouveau/fifo/gk104-: require explicit runlist selection for channel allocation
We didn't used to be aware that runlist/engine IDs weren't the same thing, or that there was such variability in configuration between GPUs. By exposing this information to a client, and giving it explicit control of which runlist it's allocating a channel on, we're able to make better choices. The immediate effect of this is that on GPUs where CE0 is the "GRCE", we will now be allocating a copy engine running asynchronously to GR for BO migrations - as intended. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
@@ -4,25 +4,11 @@
|
||||
|
||||
struct kepler_channel_gpfifo_a_v0 {
|
||||
__u8 version;
|
||||
__u8 pad01[5];
|
||||
__u8 pad01[1];
|
||||
__u16 chid;
|
||||
#define NVA06F_V0_ENGINE_SW 0x00000001
|
||||
#define NVA06F_V0_ENGINE_GR 0x00000002
|
||||
#define NVA06F_V0_ENGINE_SEC 0x00000004
|
||||
#define NVA06F_V0_ENGINE_MSVLD 0x00000010
|
||||
#define NVA06F_V0_ENGINE_MSPDEC 0x00000020
|
||||
#define NVA06F_V0_ENGINE_MSPPP 0x00000040
|
||||
#define NVA06F_V0_ENGINE_MSENC 0x00000080
|
||||
#define NVA06F_V0_ENGINE_VIC 0x00000100
|
||||
#define NVA06F_V0_ENGINE_NVDEC 0x00000200
|
||||
#define NVA06F_V0_ENGINE_NVENC0 0x00000400
|
||||
#define NVA06F_V0_ENGINE_NVENC1 0x00000800
|
||||
#define NVA06F_V0_ENGINE_CE0 0x00010000
|
||||
#define NVA06F_V0_ENGINE_CE1 0x00020000
|
||||
#define NVA06F_V0_ENGINE_CE2 0x00040000
|
||||
__u32 engines;
|
||||
__u32 ilength;
|
||||
__u64 ioffset;
|
||||
__u64 runlist;
|
||||
__u64 vmm;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user