On 10/7/24 00:44, Danilo Krummrich wrote:
Hi Ben,
On Fri, Jul 05, 2024 at 04:36:44AM +1000, Ben Skeggs wrote:
This series is a smaller subset of the prior series I posted, that aimed
to remove the ioctl layer between NVKM and the nouveau DRM driver.
Whilst this series doesn't go the full way, it aims to remove a bunch of
internal APIs that aren't useful anymore so they don't have to be ported,
and to cleanup a few paths in the DRM driver that have suffered from bit-
rot over the years to ensure it's safe to remove the ioctl layer next.
There's more details of the specific changes in the relevant commits.
A git tree is available at [1], and the remaining commits that were in
the prior series, but not this one, are available at [2].
v2:
- prepended a couple of patches that begin to cleanup pci vs tegra
paths, addressing some comments about variable naming, more in a
future series
- rebased on current drm-misc-next
- other changes mentioned in their relevant commits
[1] https://gitlab.freedesktop.org/bskeggs/nouveau/-/tree/00.00-cleanup
[2] https://gitlab.freedesktop.org/bskeggs/nouveau/-/tree/00.01-remove-ioctl
Thanks for the follow-up.
There are quite some checkpatch errors and warnings. It looks like most of them
originate from moving around existing code.
Did you check if you introduce new ones? Also, it's probably fine to fix
existing ones when changing things up (where appropriate).
Yes, I checked this before I sent the initial series that this one was
split out from.
Any additional ones introduced are from forward-declarations where the
struct name itself tells you all the necessary information already - eg.
"void nvif_client_dtor(struct nvif_client *);", as this is the style
used nearly everywhere else in the driver.
A lot of the warnings you see from the code moves would fall into the
same category.
Ben.
Ben Skeggs (37):
drm/nouveau: move nouveau_drm_device_fini() above init()
drm/nouveau: handle pci/tegra drm_dev_{alloc,register} from common
code
drm/nouveau: replace drm_device* with nouveau_drm* as dev drvdata
drm/nouveau: create pci device once
drm/nouveau: store nvkm_device pointer in nouveau_drm
drm/nouveau: move allocation of root client out of nouveau_cli_init()
drm/nouveau: add nouveau_cli to nouveau_abi16
drm/nouveau: handle limited nvif ioctl in abi16
drm/nouveau: remove abi16->device
drm/nouveau: remove abi16->handles
drm/nouveau/nvkm: remove detect/mmio/subdev_mask from device args
drm/nouveau/nvkm: remove perfmon
drm/nouveau/nvkm: remove nvkm_client_search()
drm/nouveau/nvif: remove support for userspace backends
drm/nouveau/nvif: remove route/token
drm/nouveau/nvif: remove nvxx_object()
drm/nouveau/nvif: remove nvxx_client()
drm/nouveau/nvif: remove driver keep/fini
drm/nouveau/nvif: remove client device arg
drm/nouveau/nvif: remove client version
drm/nouveau/nvif: remove client devlist
drm/nouveau/nvif: remove client fini
drm/nouveau/nvif: remove device args
drm/nouveau: always map device
drm/nouveau/nvif: remove device rd/wr
drm/nouveau/nvif: remove disp chan rd/wr
drm/nouveau: move nvxx_* definitions to nouveau_drv.h
drm/nouveau: add nvif_mmu to nouveau_drm
drm/nouveau: pass drm to nouveau_mem_new(), instead of cli
drm/nouveau: pass drm to nv50_dmac_create(), rather than device+disp
drm/nouveau: pass cli to nouveau_channel_new() instead of drm+device
drm/nouveau: remove nouveau_chan.device
drm/nouveau: remove chan->drm
drm/nouveau: remove master
drm/nouveau: remove push pointer from nouveau_channel
drm/nouveau/kms: remove a few unused struct members and fn decls
drm/nouveau/kms: remove push pointer from nv50_dmac
drivers/gpu/drm/nouveau/Kbuild | 1 -
drivers/gpu/drm/nouveau/dispnv04/crtc.c | 14 +-
drivers/gpu/drm/nouveau/dispnv04/dac.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/dfp.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 7 +-
drivers/gpu/drm/nouveau/dispnv04/disp.h | 2 +-
drivers/gpu/drm/nouveau/dispnv04/hw.c | 9 +-
drivers/gpu/drm/nouveau/dispnv04/tvnv04.c | 4 +-
drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/base507c.c | 21 +-
drivers/gpu/drm/nouveau/dispnv50/base827c.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/base907c.c | 10 +-
drivers/gpu/drm/nouveau/dispnv50/core507d.c | 8 +-
drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/crc907d.c | 4 +-
drivers/gpu/drm/nouveau/dispnv50/crcc37d.c | 4 +-
drivers/gpu/drm/nouveau/dispnv50/crcc57d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/dac507d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/dac907d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/disp.c | 74 +-
drivers/gpu/drm/nouveau/dispnv50/disp.h | 14 +-
drivers/gpu/drm/nouveau/dispnv50/head507d.c | 24 +-
drivers/gpu/drm/nouveau/dispnv50/head827d.c | 10 +-
drivers/gpu/drm/nouveau/dispnv50/head907d.c | 26 +-
drivers/gpu/drm/nouveau/dispnv50/head917d.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 18 +-
drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 12 +-
drivers/gpu/drm/nouveau/dispnv50/ovly507e.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/ovly827e.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/ovly907e.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/pior507d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/sor507d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/sor907d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/sorc37d.c | 2 +-
drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c | 7 +-
drivers/gpu/drm/nouveau/dispnv50/wndwc37e.c | 24 +-
drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c | 10 +-
drivers/gpu/drm/nouveau/dispnv50/wndwc67e.c | 2 +-
drivers/gpu/drm/nouveau/include/nvif/cl0080.h | 7 -
drivers/gpu/drm/nouveau/include/nvif/class.h | 3 -
drivers/gpu/drm/nouveau/include/nvif/client.h | 11 +-
drivers/gpu/drm/nouveau/include/nvif/device.h | 37 +-
drivers/gpu/drm/nouveau/include/nvif/driver.h | 5 -
drivers/gpu/drm/nouveau/include/nvif/if0000.h | 10 -
drivers/gpu/drm/nouveau/include/nvif/if0002.h | 39 -
drivers/gpu/drm/nouveau/include/nvif/if0003.h | 34 -
drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 27 -
drivers/gpu/drm/nouveau/include/nvif/object.h | 26 +-
drivers/gpu/drm/nouveau/include/nvif/os.h | 19 +
.../drm/nouveau/include/nvkm/core/client.h | 1 -
.../drm/nouveau/include/nvkm/core/device.h | 1 -
.../drm/nouveau/include/nvkm/core/layout.h | 1 -
.../drm/nouveau/include/nvkm/core/object.h | 14 -
.../drm/nouveau/include/nvkm/core/oclass.h | 2 -
.../gpu/drm/nouveau/include/nvkm/core/os.h | 19 -
.../gpu/drm/nouveau/include/nvkm/core/pci.h | 1 -
.../gpu/drm/nouveau/include/nvkm/core/tegra.h | 1 -
.../gpu/drm/nouveau/include/nvkm/engine/pm.h | 29 -
drivers/gpu/drm/nouveau/nouveau_abi16.c | 321 +++++--
drivers/gpu/drm/nouveau/nouveau_abi16.h | 6 +-
drivers/gpu/drm/nouveau/nouveau_bios.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_bios.h | 1 +
drivers/gpu/drm/nouveau/nouveau_bo.c | 10 +-
drivers/gpu/drm/nouveau/nouveau_bo0039.c | 6 +-
drivers/gpu/drm/nouveau/nouveau_bo5039.c | 6 +-
drivers/gpu/drm/nouveau/nouveau_bo74c1.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_bo85b5.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_bo9039.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_bo90b5.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_boa0b5.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_chan.c | 96 +-
drivers/gpu/drm/nouveau/nouveau_chan.h | 8 +-
drivers/gpu/drm/nouveau/nouveau_display.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_display.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_dma.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_drm.c | 395 ++++----
drivers/gpu/drm/nouveau/nouveau_drv.h | 51 +-
drivers/gpu/drm/nouveau/nouveau_fence.c | 17 +-
drivers/gpu/drm/nouveau/nouveau_gem.c | 21 +-
drivers/gpu/drm/nouveau/nouveau_hwmon.c | 46 +-
drivers/gpu/drm/nouveau/nouveau_led.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_mem.c | 38 +-
drivers/gpu/drm/nouveau/nouveau_mem.h | 4 +-
drivers/gpu/drm/nouveau/nouveau_nvif.c | 2 -
drivers/gpu/drm/nouveau/nouveau_platform.c | 11 +-
drivers/gpu/drm/nouveau/nouveau_sgdma.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_ttm.c | 12 +-
drivers/gpu/drm/nouveau/nouveau_usif.c | 194 ----
drivers/gpu/drm/nouveau/nouveau_usif.h | 10 -
drivers/gpu/drm/nouveau/nouveau_vga.c | 14 +-
drivers/gpu/drm/nouveau/nv04_fence.c | 2 +-
drivers/gpu/drm/nouveau/nv10_fence.c | 2 +-
drivers/gpu/drm/nouveau/nv17_fence.c | 10 +-
drivers/gpu/drm/nouveau/nv50_fence.c | 2 +-
drivers/gpu/drm/nouveau/nv84_fence.c | 12 +-
drivers/gpu/drm/nouveau/nvc0_fence.c | 4 +-
drivers/gpu/drm/nouveau/nvif/client.c | 32 +-
drivers/gpu/drm/nouveau/nvif/device.c | 15 +-
drivers/gpu/drm/nouveau/nvif/driver.c | 32 +-
drivers/gpu/drm/nouveau/nvif/object.c | 40 -
drivers/gpu/drm/nouveau/nvkm/core/client.c | 64 +-
drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 91 +-
drivers/gpu/drm/nouveau/nvkm/core/object.c | 50 -
drivers/gpu/drm/nouveau/nvkm/core/oproxy.c | 42 -
drivers/gpu/drm/nouveau/nvkm/core/uevent.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/engine/Kbuild | 1 -
.../gpu/drm/nouveau/nvkm/engine/device/base.c | 479 +++++-----
.../gpu/drm/nouveau/nvkm/engine/device/pci.c | 4 +-
.../gpu/drm/nouveau/nvkm/engine/device/priv.h | 2 -
.../drm/nouveau/nvkm/engine/device/tegra.c | 5 +-
.../gpu/drm/nouveau/nvkm/engine/device/user.c | 93 +-
.../gpu/drm/nouveau/nvkm/engine/disp/chan.c | 24 -
drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild | 11 -
drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 867 ------------------
drivers/gpu/drm/nouveau/nvkm/engine/pm/g84.c | 165 ----
.../gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 243 -----
.../gpu/drm/nouveau/nvkm/engine/pm/gf100.h | 20 -
.../gpu/drm/nouveau/nvkm/engine/pm/gf108.c | 66 --
.../gpu/drm/nouveau/nvkm/engine/pm/gf117.c | 80 --
.../gpu/drm/nouveau/nvkm/engine/pm/gk104.c | 184 ----
.../gpu/drm/nouveau/nvkm/engine/pm/gt200.c | 157 ----
.../gpu/drm/nouveau/nvkm/engine/pm/gt215.c | 138 ---
drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 123 ---
drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.h | 15 -
drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c | 175 ----
drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 105 ---
128 files changed, 1105 insertions(+), 4199 deletions(-)
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0002.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0003.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h
delete mode 100644 drivers/gpu/drm/nouveau/nouveau_usif.c
delete mode 100644 drivers/gpu/drm/nouveau/nouveau_usif.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/g84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf108.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf117.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gt200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h
--
2.45.1