Hi Dave and Daniel, this is the PR for drm-misc-next; presumably the final one before -rc6. Half of the patches update fbdev drivers to make them use the provided helpers and macros. The big feature is nouveau's support for tracking virtual memory on the GPU, which enables Vulkan sparse binding and residency. Best regard Thomas drm-misc-next-2023-08-10: drm-misc-next for v6.6: UAPI Changes: * nouveau: * Provide several GETPARAM ioctls * Provide VM_BIND ioctls Cross-subsystem Changes: * fbdev: Convert many drivers to fbdev I/O-memory helpers * media/vivid: Convert to fbdev I/O-memory helpers * vfio-dev/mdpy-fb: Convert to fbdev I/O-memory helpers Core Changes: * Documentation fixes * Do not select framebuffer console for fbdev emulation, fixes Kconfig dependencies * exec: * Add test cases for calling drm_exec() multiple times * Fix memory leak in sleftests * Build fixes * gem: * Fix lockdep checking * ttm: * Add Kunit tests * Cleanups Driver Changes: * atmel-hlcdc: * Support inverted pixclock polarity, required by several SoCs * bridge: * dw-hdmi: Update EDID on HDMI detection * sitronix-st7789v: Support panel orientation; Support rotation property; Add support for Jasonic JT240MHQS-HWT-EK-E3 plus DT bindings; Minor fixes * ivpu: * Support VPU4 * Refactorings * loongson: * Fixes * mcde: * Cleanups * nouveau: * Track GPU virtual memory via DRM GPUVA manager, enables Vulkan sparse binding/residency * panfrost: * Fix synchronization in IRQ handling * tve200: * Cleanups The following changes since commit a0769f25a3a621e8bbfb5e2a26e8ae462c761e33: HID: i2c-hid: add more DRM dependencies (2023-08-03 07:36:41 -0700) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2023-08-10 for you to fetch changes up to 2799804ac651da1375ecb9b9a644eba97218df07: drm/ttm: Remove two unused function declarations (2023-08-10 09:12:08 +0200) ---------------------------------------------------------------- drm-misc-next for v6.6: UAPI Changes: * nouveau: * Provide several GETPARAM ioctls * Provide VM_BIND ioctls Cross-subsystem Changes: * fbdev: Convert many drivers to fbdev I/O-memory helpers * media/vivid: Convert to fbdev I/O-memory helpers * vfio-dev/mdpy-fb: Convert to fbdev I/O-memory helpers Core Changes: * Documentation fixes * Do not select framebuffer console for fbdev emulation, fixes Kconfig dependencies * exec: * Add test cases for calling drm_exec() multiple times * Fix memory leak in sleftests * Build fixes * gem: * Fix lockdep checking * ttm: * Add Kunit tests * Cleanups Driver Changes: * atmel-hlcdc: * Support inverted pixclock polarity, required by several SoCs * bridge: * dw-hdmi: Update EDID on HDMI detection * sitronix-st7789v: Support panel orientation; Support rotation property; Add support for Jasonic JT240MHQS-HWT-EK-E3 plus DT bindings; Minor fixes * ivpu: * Support VPU4 * Refactorings * loongson: * Fixes * mcde: * Cleanups * nouveau: * Track GPU virtual memory via DRM GPUVA manager, enables Vulkan sparse binding/residency * panfrost: * Fix synchronization in IRQ handling * tve200: * Cleanups ---------------------------------------------------------------- Christian König (2): drm/exec: use unique instead of local label drm/exec: add test case for using a drm_exec multiple times Dan Carpenter (1): drm/loongson: Add a check for lsdc_bo_create() errors Danilo Krummrich (17): drm/gem: fix lockdep check for dma-resv lock drm/nouveau: new VM_BIND uAPI interfaces drm/nouveau: get vmm via nouveau_cli_vmm() drm/nouveau: bo: initialize GEM GPU VA interface drm/nouveau: move usercopy helpers to nouveau_drv.h drm/nouveau: fence: separate fence alloc and emit drm/nouveau: fence: fail to emit when fence context is killed drm/nouveau: chan: provide nouveau_channel_kill() drm/nouveau: nvkm/vmm: implement raw ops to manage uvmm drm/nouveau: implement new VM_BIND uAPI drm/nouveau: debugfs: implement DRM GPU VA debugfs nouveau/dmem: fix copy-paste error in nouveau_dmem_migrate_chunk() drm/nouveau: nvkm: vmm: silence warning from cast drm/nouveau: remove incorrect __user annotations drm/nouveau: uvmm: remove incorrect calls to mas_unlock() drm/nouveau: uvmm: remove dedicated VM pointer from VMAs drm/test: drm_exec: fix memory leak on object prepare Dave Airlie (1): drm/nouveau: fixup the uapi header file. Dmitry Osipenko (1): drm/panfrost: Sync IRQ by job's timeout handler Faith Ekstrand (1): drm/nouveau/sched: Don't pass user flags to drm_syncobj_find_fence() Jacek Lawrynowicz (3): accel/ivpu: Rename sources to use generation based names accel/ivpu: Use generation based function and registers names accel/ivpu: Switch to generation based FW names Javier Martinez Canillas (1): drm: Drop select FRAMEBUFFER_CONSOLE for DRM_FBDEV_EMULATION Karol Wachowski (1): accel/ivpu: Refactor memory ranges logic Karolina Stolarek (3): drm/ttm: Introduce KUnit test drm/ttm/tests: Add tests for ttm_device drm/ttm/tests: Add tests for ttm_pool Michael Riesch (7): drm/panel: sitronix-st7789v: fix indentation in drm_panel_funcs drm/panel: sitronix-st7789v: add panel orientation support dt-bindings: display: add rotation property to sitronix,st7789v dt-bindings: vendor-prefixes: add jasonic dt-bindings: display: st7789v: add jasonic jt240mhqs-hwt-ek-e3 display drm/panel: sitronix-st7789v: add support for partial mode drm/panel: sitronix-st7789v: add jasonic jt240mhqs-hwt-ek-e3 support Miquel Raynal (1): drm: atmel-hlcdc: Support inverting the pixel clock polarity Sandor Yu (1): drm: bridge: dw_hdmi: Fix ELD is not updated issue Simon Ser (1): drm/doc: fix underline for section "DRM Sync Objects" Stanislaw Gruszka (2): accel/ivpu: Extend get_param ioctl to identify capabilities accel/ivpu: Add initial support for VPU 4 Thomas Zimmermann (47): media/vivid: Use fbdev I/O helpers fbdev/acornfb: Use fbdev I/O helpers fbdev/asiliantfb: Use fbdev I/O helpers fbdev/atmel_lcdfb: Use fbdev I/O helpers fbdev/aty128fb: Use fbdev I/O helpers fbdev/carminefb: Use fbdev I/O helpers fbdev/chipsfb: Use fbdev I/O helpers fbdev/da8xx-fb: Use fbdev I/O helpers fbdev/efifb: Use fbdev I/O helpers fbdev/fm2fb: Use fbdev I/O helpers fbdev/fsl-diu-fb: Use fbdev I/O helpers fbdev/g364fb: Use fbdev I/O helpers fbdev/geode/gx1fb: Use fbdev I/O helpers fbdev/geode/gxfb: Use fbdev I/O helpers fbdev/geode/lxfb: Use fbdev I/O helpers fbdev/goldfishfb: Use fbdev I/O helpers fbdev/grvga: Use fbdev I/O helpers fbdev/gxt4500: Use fbdev I/O helpers fbdev/i740fb: Use fbdev I/O helpers fbdev/imxfb: Use fbdev I/O helpers fbdev/kyro: Use fbdev I/O helpers fbdev/macfb: Use fbdev I/O helpers fbdev/maxinefb: Use fbdev I/O helpers fbdev/mb862xxfb: Use fbdev I/O helpers fbdev/mmpfb: Use fbdev I/O helpers fbdev/mx3fb: Use fbdev I/O helpers fbdev/ocfb: Use fbdev I/O helpers fbdev/offb: Use fbdev I/O helpers fbdev/omapfb: Use fbdev I/O helpers fbdev/platinumfb: Use fbdev I/O helpers fbdev/pmag-aa-fb: Use fbdev I/O helpers fbdev/pmag-ba-fb: Use fbdev I/O helpers fbdev/pmagb-b-fb: Use fbdev I/O helpers fbdev/pxa168fb: Use fbdev I/O helpers fbdev/pxafb: Use fbdev I/O helpers fbdev/q40fb: Use fbdev I/O helpers fbdev/s3cfb: Use fbdev I/O helpers fbdev/sh7760fb: Use fbdev I/O helpers fbdev/simplefb: Use fbdev I/O helpers fbdev/sstfb: Use fbdev I/O helpers fbdev/sunxvr1000: Use fbdev I/O helpers fbdev/sunxvr2500: Use fbdev I/O helpers fbdev/uvesafb: Use fbdev I/O helpers fbdev/valkyriefb: Use fbdev I/O helpers fbdev/vesafb: Use fbdev I/O helpers fbdev/xilinxfb: Use fbdev I/O helpers vfio-dev/mdpy-fb: Use fbdev I/O helpers Yue Haibing (1): drm/ttm: Remove two unused function declarations Zhu Wang (2): drm/tve200: remove redundant of_match_ptr drm/mcde: remove redundant of_match_ptr .../bindings/display/panel/sitronix,st7789v.yaml | 3 + .../devicetree/bindings/vendor-prefixes.yaml | 2 + Documentation/gpu/driver-uapi.rst | 11 + Documentation/gpu/drm-mm.rst | 2 +- drivers/accel/ivpu/Makefile | 3 +- drivers/accel/ivpu/ivpu_drv.c | 35 +- drivers/accel/ivpu/ivpu_drv.h | 23 +- drivers/accel/ivpu/ivpu_fw.c | 41 +- drivers/accel/ivpu/ivpu_gem.c | 10 +- drivers/accel/ivpu/ivpu_hw.h | 12 +- .../accel/ivpu/{ivpu_hw_mtl.c => ivpu_hw_37xx.c} | 485 +++-- drivers/accel/ivpu/ivpu_hw_37xx_reg.h | 281 +++ drivers/accel/ivpu/ivpu_hw_40xx.c | 1178 ++++++++++++ drivers/accel/ivpu/ivpu_hw_40xx_reg.h | 267 +++ drivers/accel/ivpu/ivpu_hw_mtl_reg.h | 281 --- drivers/accel/ivpu/ivpu_mmu.c | 84 +- drivers/accel/ivpu/ivpu_mmu_context.c | 8 +- drivers/gpu/drm/Kconfig | 16 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 25 + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +- drivers/gpu/drm/loongson/lsdc_ttm.c | 2 + drivers/gpu/drm/mcde/mcde_dsi.c | 2 +- drivers/gpu/drm/nouveau/Kbuild | 3 + drivers/gpu/drm/nouveau/Kconfig | 2 + drivers/gpu/drm/nouveau/dispnv04/crtc.c | 9 +- drivers/gpu/drm/nouveau/include/nvif/if000c.h | 26 +- drivers/gpu/drm/nouveau/include/nvif/vmm.h | 19 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 20 +- drivers/gpu/drm/nouveau/nouveau_abi16.c | 24 + drivers/gpu/drm/nouveau/nouveau_abi16.h | 42 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 219 ++- drivers/gpu/drm/nouveau/nouveau_bo.h | 3 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 22 +- drivers/gpu/drm/nouveau/nouveau_chan.h | 1 + drivers/gpu/drm/nouveau/nouveau_debugfs.c | 39 + drivers/gpu/drm/nouveau/nouveau_dmem.c | 9 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 27 +- drivers/gpu/drm/nouveau/nouveau_drv.h | 93 +- drivers/gpu/drm/nouveau/nouveau_exec.c | 411 +++++ drivers/gpu/drm/nouveau/nouveau_exec.h | 54 + drivers/gpu/drm/nouveau/nouveau_fence.c | 23 +- drivers/gpu/drm/nouveau/nouveau_fence.h | 5 +- drivers/gpu/drm/nouveau/nouveau_gem.c | 86 +- drivers/gpu/drm/nouveau/nouveau_gem.h | 3 +- drivers/gpu/drm/nouveau/nouveau_mem.h | 5 + drivers/gpu/drm/nouveau/nouveau_prime.c | 13 +- drivers/gpu/drm/nouveau/nouveau_sched.c | 419 +++++ drivers/gpu/drm/nouveau/nouveau_sched.h | 127 ++ drivers/gpu/drm/nouveau/nouveau_svm.c | 2 +- drivers/gpu/drm/nouveau/nouveau_uvmm.c | 1916 ++++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_uvmm.h | 108 ++ drivers/gpu/drm/nouveau/nouveau_vmm.c | 4 +- drivers/gpu/drm/nouveau/nvif/vmm.c | 100 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c | 214 ++- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 197 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h | 25 + drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgf100.c | 16 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.c | 16 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.c | 27 +- drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 99 +- drivers/gpu/drm/panfrost/panfrost_job.c | 16 + drivers/gpu/drm/tests/drm_exec_test.c | 28 +- drivers/gpu/drm/ttm/Makefile | 1 + drivers/gpu/drm/ttm/tests/.kunitconfig | 4 + drivers/gpu/drm/ttm/tests/Makefile | 6 + drivers/gpu/drm/ttm/tests/ttm_device_test.c | 212 +++ drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c | 113 ++ drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.h | 41 + drivers/gpu/drm/ttm/tests/ttm_pool_test.c | 437 +++++ drivers/gpu/drm/tve200/tve200_drv.c | 2 +- drivers/media/test-drivers/vivid/Kconfig | 4 +- drivers/media/test-drivers/vivid/vivid-osd.c | 4 +- drivers/video/fbdev/Kconfig | 160 +- drivers/video/fbdev/acornfb.c | 4 +- drivers/video/fbdev/asiliantfb.c | 4 +- drivers/video/fbdev/atmel_lcdfb.c | 4 +- drivers/video/fbdev/aty/aty128fb.c | 4 +- drivers/video/fbdev/carminefb.c | 5 +- drivers/video/fbdev/chipsfb.c | 4 +- drivers/video/fbdev/da8xx-fb.c | 4 +- drivers/video/fbdev/efifb.c | 4 +- drivers/video/fbdev/fm2fb.c | 4 +- drivers/video/fbdev/fsl-diu-fb.c | 4 +- drivers/video/fbdev/g364fb.c | 4 +- drivers/video/fbdev/geode/Kconfig | 12 +- drivers/video/fbdev/geode/gx1fb_core.c | 5 +- drivers/video/fbdev/geode/gxfb_core.c | 5 +- drivers/video/fbdev/geode/lxfb_core.c | 5 +- drivers/video/fbdev/goldfishfb.c | 4 +- drivers/video/fbdev/grvga.c | 4 +- drivers/video/fbdev/gxt4500.c | 4 +- drivers/video/fbdev/i740fb.c | 4 +- drivers/video/fbdev/imxfb.c | 4 +- drivers/video/fbdev/kyro/fbdev.c | 4 +- drivers/video/fbdev/macfb.c | 4 +- drivers/video/fbdev/maxinefb.c | 4 +- drivers/video/fbdev/mb862xx/mb862xxfbdrv.c | 4 +- drivers/video/fbdev/mmp/fb/Kconfig | 4 +- drivers/video/fbdev/mmp/fb/mmpfb.c | 4 +- drivers/video/fbdev/mx3fb.c | 4 +- drivers/video/fbdev/ocfb.c | 4 +- drivers/video/fbdev/offb.c | 4 +- drivers/video/fbdev/omap/Kconfig | 4 +- drivers/video/fbdev/omap/omapfb_main.c | 4 +- drivers/video/fbdev/platinumfb.c | 4 +- drivers/video/fbdev/pmag-aa-fb.c | 4 +- drivers/video/fbdev/pmag-ba-fb.c | 4 +- drivers/video/fbdev/pmagb-b-fb.c | 4 +- drivers/video/fbdev/pxa168fb.c | 4 +- drivers/video/fbdev/pxafb.c | 4 +- drivers/video/fbdev/q40fb.c | 4 +- drivers/video/fbdev/s3c-fb.c | 4 +- drivers/video/fbdev/sh7760fb.c | 4 +- drivers/video/fbdev/simplefb.c | 4 +- drivers/video/fbdev/sstfb.c | 4 +- drivers/video/fbdev/sunxvr1000.c | 4 +- drivers/video/fbdev/sunxvr2500.c | 4 +- drivers/video/fbdev/uvesafb.c | 4 +- drivers/video/fbdev/valkyriefb.c | 4 +- drivers/video/fbdev/vesafb.c | 4 +- drivers/video/fbdev/xilinxfb.c | 4 +- include/drm/drm_exec.h | 14 +- include/drm/drm_gem.h | 15 +- include/drm/ttm/ttm_bo.h | 2 - include/uapi/drm/ivpu_accel.h | 9 +- include/uapi/drm/nouveau_drm.h | 265 ++- samples/Kconfig | 4 +- samples/vfio-mdev/mdpy-fb.c | 4 +- 128 files changed, 7537 insertions(+), 1219 deletions(-) rename drivers/accel/ivpu/{ivpu_hw_mtl.c => ivpu_hw_37xx.c} (52%) create mode 100644 drivers/accel/ivpu/ivpu_hw_37xx_reg.h create mode 100644 drivers/accel/ivpu/ivpu_hw_40xx.c create mode 100644 drivers/accel/ivpu/ivpu_hw_40xx_reg.h delete mode 100644 drivers/accel/ivpu/ivpu_hw_mtl_reg.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_exec.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_exec.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_sched.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_sched.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_uvmm.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_uvmm.h create mode 100644 drivers/gpu/drm/ttm/tests/.kunitconfig create mode 100644 drivers/gpu/drm/ttm/tests/Makefile create mode 100644 drivers/gpu/drm/ttm/tests/ttm_device_test.c create mode 100644 drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c create mode 100644 drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.h create mode 100644 drivers/gpu/drm/ttm/tests/ttm_pool_test.c -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstrasse 146, 90461 Nuernberg, Germany GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman HRB 36809 (AG Nuernberg)