drm/nouveau/fifo: add new channel classes
authorBen Skeggs <bskeggs@redhat.com>
Wed, 1 Jun 2022 10:47:38 +0000 (20:47 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 9 Nov 2022 00:44:50 +0000 (10:44 +1000)
commit06db7fded6dec88772a65c5a39af12ba4dc2ad38
treed00ff73679dd75931c7625880903e1b301184600
parent7ac293328122075a2afc40a4089e7afc6cbc26eb
drm/nouveau/fifo: add new channel classes

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>
63 files changed:
drivers/gpu/drm/nouveau/include/nvif/cl006b.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/cl506e.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/cl506f.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/cl826e.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/cl826f.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/cl906f.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/cla06f.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/class.h
drivers/gpu/drm/nouveau/include/nvif/clc36f.h [deleted file]
drivers/gpu/drm/nouveau/include/nvif/if0020.h
drivers/gpu/drm/nouveau/include/nvif/if0021.h [new file with mode: 0644]
drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h
drivers/gpu/drm/nouveau/nouveau_abi16.c
drivers/gpu/drm/nouveau/nouveau_chan.c
drivers/gpu/drm/nouveau/nouveau_chan.h
drivers/gpu/drm/nouveau/nouveau_dma.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.h
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chang84.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/changf100.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/changk104.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/channv04.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/channv50.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/channv50.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g98.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga102.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogv100.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifotu102.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c [new file with mode: 0644]
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c