mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-25 03:22:39 +00:00
Exposes a bunch of the new features that became possible as a result
of the earlier commits. DRM will build on this in the future to add
support for features such as SCG ("async compute") and multi-device
rendering, as part of the work necessary to be able to write a half-
decent vulkan driver - finally.
For the moment, this just crudely ports DRM to the API changes.
- channel class interfaces now the same for all HW classes
- channel group class exposed (SCG)
- channel runqueue selector exposed (SCG)
- channel sub-device id control exposed (multi-device rendering)
- channel names in logging will reflect creating process, not fd owner
- explicit USERD allocation required by VOLTA_CHANNEL_GPFIFO_A and newer
- drm is smarter about determining the appropriate channel class to use
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
46 lines
791 B
C
46 lines
791 B
C
/* SPDX-License-Identifier: MIT */
|
|
#ifndef __NVIF_IF0020_H__
|
|
#define __NVIF_IF0020_H__
|
|
|
|
union nvif_chan_args {
|
|
struct nvif_chan_v0 {
|
|
__u8 version;
|
|
__u8 namelen;
|
|
__u8 runlist;
|
|
__u8 runq;
|
|
__u8 priv;
|
|
__u8 pad05;
|
|
__u16 devm;
|
|
__u64 vmm;
|
|
|
|
__u64 ctxdma;
|
|
__u64 offset;
|
|
__u64 length;
|
|
|
|
__u64 huserd;
|
|
__u64 ouserd;
|
|
|
|
__u32 token;
|
|
__u16 chid;
|
|
__u8 pad3e;
|
|
#define NVIF_CHAN_V0_INST_APER_VRAM 0
|
|
#define NVIF_CHAN_V0_INST_APER_HOST 1
|
|
#define NVIF_CHAN_V0_INST_APER_NCOH 2
|
|
#define NVIF_CHAN_V0_INST_APER_INST 0xff
|
|
__u8 aper;
|
|
__u64 inst;
|
|
|
|
__u8 name[];
|
|
} v0;
|
|
};
|
|
|
|
union nvif_chan_event_args {
|
|
struct nvif_chan_event_v0 {
|
|
__u8 version;
|
|
#define NVIF_CHAN_EVENT_V0_NON_STALL_INTR 0x00
|
|
#define NVIF_CHAN_EVENT_V0_KILLED 0x01
|
|
__u8 type;
|
|
} v0;
|
|
};
|
|
#endif
|