Hi, Here's this week drm-misc-next PR Thanks! Maxime drm-misc-next-2023-11-30: drm-misc-next for 6.8: UAPI Changes: - Introduction of DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP - Introduction of DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT Cross-subsystem Changes: - fbdev: Convert a big chunks of drivers to helper macros Core Changes: - atomic: Add support for mouse hotspots Driver Changes: - ast: Model Detection improvements - imagination: plenty of fixes - nouveau: use GPUVM, scheduling improvements The following changes since commit a13fee31f56449fc600d9e064c7b32302f92dcef: Merge v6.7-rc3 into drm-next (2023-11-28 11:55:56 +0100) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2023-11-30 for you to fetch changes up to 9ee33dc47772724ff583b060bb37c62b92b2d9c4: drm/imagination: Fix IS_ERR() vs NULL bug in pvr_request_firmware() (2023-11-30 09:16:59 +0100) ---------------------------------------------------------------- drm-misc-next for 6.8: UAPI Changes: - Introduction of DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP - Introduction of DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT Cross-subsystem Changes: - fbdev: Convert a big chunks of drivers to helper macros Core Changes: - atomic: Add support for mouse hotspots Driver Changes: - ast: Model Detection improvements - imagination: plenty of fixes - nouveau: use GPUVM, scheduling improvements ---------------------------------------------------------------- André Almeida (1): drm: Refuse to async flip with atomic prop changes Bert Karwatzki (1): drm/sched: Partial revert of "Qualify drm_sched_wakeup() by drm_sched_entity_is_ready()" Colin Ian King (1): drm/imagination: Fix a couple of spelling mistakes in literal strings Dan Carpenter (2): drm/imagination: Fix error codes in pvr_device_clk_init() drm/imagination: Fix IS_ERR() vs NULL bug in pvr_request_firmware() Danilo Krummrich (6): drm/nouveau: use GPUVM common infrastructure drm/nouveau: implement 1:1 scheduler - entity relationship drm/nouveau: enable dynamic job-flow control drm/imagination: vm: prevent duplicate drm_gpuvm_bo instances drm/imagination: vm: check for drm_gpuvm_range_valid() drm/imagination: vm: fix drm_gpuvm reference count Dario Binacchi (1): drm/bridge: Fix typo in post_disable() description Donald Robson (1): drm/imagination: Numerous documentation fixes. Hsin-Yi Wang (3): drm/panel-edp: Add override_edid_mode quirk for generic edp drm/panel-edp: Add auo_b116xa3_mode drm/panel-edp: Avoid adding multiple preferred modes Javier Martinez Canillas (5): drm: Allow drivers to indicate the damage helpers to ignore damage clips drm/virtio: Disable damage clipping if FB changed since last page-flip drm/vmwgfx: Disable damage clipping if FB changed since last page-flip drm/plane: Extend damage tracking kernel-doc drm/todo: Add entry about implementing buffer age for damage tracking Jean Delvare (1): drm/loongson: Add platform dependency Liu Ying (1): drm/bridge: imx93-mipi-dsi: Fix a couple of building warnings Luben Tuikov (4): drm/sched: Fix bounds limiting when given a malformed entity drm/sched: Rename priority MIN to LOW drm/sched: Reverse run-queue priority enumeration drm/sched: Fix compilation issues with DRM priority rename Michael Banack (1): drm: Introduce documentation for hotspot properties Rajneesh Bhardwaj (1): drm/ttm: Schedule delayed_delete worker closer Rob Herring (1): drm: Use device_get_match_data() Simon Ser (2): drm: allow DRM_MODE_PAGE_FLIP_ASYNC for atomic commits drm: introduce DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP Thomas Hellström (1): Documentation/gpu: VM_BIND locking document Thomas Zimmermann (43): Merge drm/drm-next into drm-misc-next drm/ast: Turn ioregs_lock to modeset_lock drm/ast: Rework I/O register setup drm/ast: Retrieve I/O-memory ranges without ast device drm/ast: Add I/O helpers without ast device drm/ast: Enable VGA without ast device instance drm/ast: Enable MMIO without ast device instance drm/ast: Partially implement POST without ast device instance drm/ast: Add enum ast_config_mode drm/ast: Detect ast device type and config mode without ast device drm/ast: Move detection code into PCI probe helper fbdev/acornfb: Fix name of fb_ops initializer macro fbdev/sm712fb: Use correct initializer macros for struct fb_ops fbdev/vfb: Set FBINFO_VIRTFB flag fbdev/vfb: Initialize fb_ops with fbdev macros fbdev/arcfb: Set FBINFO_VIRTFB flag fbdev/arcfb: Use generator macros for deferred I/O auxdisplay/cfag12864bfb: Set FBINFO_VIRTFB flag auxdisplay/cfag12864bfb: Initialize fb_ops with fbdev macros auxdisplay/ht16k33: Set FBINFO_VIRTFB flag auxdisplay/ht16k33: Initialize fb_ops with fbdev macros hid/picolcd_fb: Set FBINFO_VIRTFB flag fbdev/sh_mobile_lcdcfb: Set FBINFO_VIRTFB flag fbdev/sh_mobile_lcdcfb: Initialize fb_ops with fbdev macros fbdev/smscufx: Select correct helpers fbdev/udlfb: Select correct helpers fbdev/au1200fb: Set FBINFO_VIRTFB flag fbdev/au1200fb: Initialize fb_ops with fbdev macros fbdev/ps3fb: Set FBINFO_VIRTFB flag fbdev/ps3fb: Initialize fb_ops with fbdev macros media/ivtvfb: Initialize fb_ops to fbdev I/O-memory helpers fbdev/clps711x-fb: Initialize fb_ops with fbdev macros fbdev/vt8500lcdfb: Initialize fb_ops with fbdev macros fbdev/wm8505fb: Initialize fb_ops to fbdev I/O-memory helpers fbdev/cyber2000fb: Initialize fb_ops with fbdev macros staging/sm750fb: Declare fb_ops as constant staging/sm750fb: Initialize fb_ops with fbdev macros fbdev: Rename FB_SYS_FOPS token to FB_SYSMEM_FOPS fbdev: Remove trailing whitespaces fbdev: Push pgprot_decrypted() into mmap implementations fbdev: Move default fb_mmap code into helper function fbdev: Warn on incorrect framebuffer access fbdev: Remove default file-I/O implementations Uwe Kleine-König (2): drm/tilcdc: Convert to platform remove callback returning void drm/bridge: ti-sn65dsi86: Simplify using pm_runtime_resume_and_get() Xin Ji (2): Revert "drm/bridge: Add 200ms delay to wait FW HPD status stable" drm/bridge: anx7625: Fix Set HPD irq detect window to 2ms Yang Li (1): drm/imagination: Remove unneeded semicolon Yuran Pereira (1): drm/nouveau: Removes unnecessary args check in nouveau_uvmm_sm_prepare Zack Rusin (8): drm: Disable the cursor plane on atomic contexts with virtualized drivers drm/atomic: Add support for mouse hotspots drm/vmwgfx: Use the hotspot properties from cursor planes drm/qxl: Use the hotspot properties from cursor planes drm/vboxvideo: Use the hotspot properties from cursor planes drm/virtio: Use the hotspot properties from cursor planes drm: Remove legacy cursor hotspot code drm: Introduce DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT Documentation/core-api/pin_user_pages.rst | 2 + Documentation/gpu/drm-kms.rst | 8 + Documentation/gpu/drm-mm.rst | 4 + Documentation/gpu/drm-vm-bind-locking.rst | 582 ++++++++++++++++++++++++ Documentation/gpu/imagination/index.rst | 2 +- Documentation/gpu/imagination/uapi.rst | 5 +- Documentation/gpu/implementation_guidelines.rst | 1 + Documentation/gpu/rfc/xe.rst | 5 + Documentation/gpu/todo.rst | 23 + drivers/auxdisplay/Kconfig | 10 +- drivers/auxdisplay/cfag12864bfb.c | 10 +- drivers/auxdisplay/ht16k33.c | 10 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 2 +- drivers/gpu/drm/armada/armada_crtc.c | 24 +- drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 10 +- drivers/gpu/drm/ast/ast_drv.c | 263 ++++++++++- drivers/gpu/drm/ast/ast_drv.h | 101 ++-- drivers/gpu/drm/ast/ast_main.c | 244 +--------- drivers/gpu/drm/ast/ast_mode.c | 26 +- drivers/gpu/drm/ast/ast_post.c | 81 ++-- drivers/gpu/drm/ast/ast_reg.h | 12 +- drivers/gpu/drm/bridge/analogix/anx7625.c | 54 ++- drivers/gpu/drm/bridge/analogix/anx7625.h | 4 + drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c | 4 +- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 6 +- drivers/gpu/drm/drm_atomic_state_helper.c | 14 + drivers/gpu/drm/drm_atomic_uapi.c | 97 +++- drivers/gpu/drm/drm_crtc_internal.h | 2 +- drivers/gpu/drm/drm_damage_helper.c | 3 +- drivers/gpu/drm/drm_ioctl.c | 13 + drivers/gpu/drm/drm_mode_object.c | 2 +- drivers/gpu/drm/drm_plane.c | 150 +++++- drivers/gpu/drm/exynos/exynos_drm_gsc.c | 9 +- drivers/gpu/drm/imagination/pvr_cccb.h | 1 + drivers/gpu/drm/imagination/pvr_device.c | 8 +- drivers/gpu/drm/imagination/pvr_device.h | 25 +- drivers/gpu/drm/imagination/pvr_free_list.c | 2 +- drivers/gpu/drm/imagination/pvr_fw.h | 3 +- drivers/gpu/drm/imagination/pvr_fw_info.h | 8 +- drivers/gpu/drm/imagination/pvr_hwrt.h | 1 + drivers/gpu/drm/imagination/pvr_job.c | 4 +- drivers/gpu/drm/imagination/pvr_mmu.c | 3 +- drivers/gpu/drm/imagination/pvr_queue.c | 2 +- drivers/gpu/drm/imagination/pvr_queue.h | 4 +- drivers/gpu/drm/imagination/pvr_rogue_fwif_sf.h | 4 +- drivers/gpu/drm/imagination/pvr_vm.c | 32 +- drivers/gpu/drm/imagination/pvr_vm.h | 3 +- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 9 +- drivers/gpu/drm/loongson/Kconfig | 1 + drivers/gpu/drm/msm/msm_gpu.h | 2 +- drivers/gpu/drm/mxsfb/mxsfb_drv.c | 10 +- drivers/gpu/drm/nouveau/nouveau_abi16.c | 19 +- drivers/gpu/drm/nouveau/nouveau_abi16.h | 2 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 4 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 31 +- drivers/gpu/drm/nouveau/nouveau_drv.h | 9 +- drivers/gpu/drm/nouveau/nouveau_exec.c | 70 +-- drivers/gpu/drm/nouveau/nouveau_exec.h | 6 +- drivers/gpu/drm/nouveau/nouveau_sched.c | 211 +++++---- drivers/gpu/drm/nouveau/nouveau_sched.h | 43 +- drivers/gpu/drm/nouveau/nouveau_uvmm.c | 210 ++++----- drivers/gpu/drm/nouveau/nouveau_uvmm.h | 4 +- drivers/gpu/drm/omapdrm/dss/dispc.c | 4 +- drivers/gpu/drm/omapdrm/dss/dss.c | 5 +- drivers/gpu/drm/panel/panel-edp.c | 79 +++- drivers/gpu/drm/qxl/qxl_display.c | 14 +- drivers/gpu/drm/qxl/qxl_drv.c | 2 +- drivers/gpu/drm/scheduler/sched_entity.c | 14 +- drivers/gpu/drm/scheduler/sched_main.c | 20 +- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 9 +- drivers/gpu/drm/ttm/ttm_bo.c | 8 +- drivers/gpu/drm/ttm/ttm_device.c | 6 +- drivers/gpu/drm/vboxvideo/vbox_drv.c | 2 +- drivers/gpu/drm/vboxvideo/vbox_mode.c | 4 +- drivers/gpu/drm/virtio/virtgpu_drv.c | 2 +- drivers/gpu/drm/virtio/virtgpu_plane.c | 18 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 20 +- drivers/hid/hid-picolcd_fb.c | 1 + drivers/media/pci/ivtv/Kconfig | 4 +- drivers/media/pci/ivtv/ivtvfb.c | 6 +- drivers/staging/sm750fb/sm750.c | 65 ++- drivers/video/fbdev/Kconfig | 50 +- drivers/video/fbdev/acornfb.c | 2 +- drivers/video/fbdev/amba-clcd.c | 2 + drivers/video/fbdev/arcfb.c | 114 ++--- drivers/video/fbdev/au1100fb.c | 2 + drivers/video/fbdev/au1200fb.c | 11 +- drivers/video/fbdev/clps711x-fb.c | 4 +- drivers/video/fbdev/core/Kconfig | 7 +- drivers/video/fbdev/core/Makefile | 2 +- drivers/video/fbdev/core/cfbcopyarea.c | 3 + drivers/video/fbdev/core/cfbfillrect.c | 3 + drivers/video/fbdev/core/cfbimgblt.c | 3 + drivers/video/fbdev/core/fb_chrdev.c | 72 +-- drivers/video/fbdev/core/fb_defio.c | 2 + drivers/video/fbdev/core/fb_io_fops.c | 36 ++ drivers/video/fbdev/core/fb_sys_fops.c | 6 + drivers/video/fbdev/core/syscopyarea.c | 3 + drivers/video/fbdev/core/sysfillrect.c | 3 + drivers/video/fbdev/core/sysimgblt.c | 3 + drivers/video/fbdev/cyber2000fb.c | 9 +- drivers/video/fbdev/ep93xx-fb.c | 2 + drivers/video/fbdev/gbefb.c | 2 + drivers/video/fbdev/omap/omapfb_main.c | 2 + drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 + drivers/video/fbdev/ps3fb.c | 11 +- drivers/video/fbdev/sa1100fb.c | 2 + drivers/video/fbdev/sbuslib.c | 5 +- drivers/video/fbdev/sh_mobile_lcdcfb.c | 16 +- drivers/video/fbdev/sm712fb.c | 6 +- drivers/video/fbdev/smscufx.c | 2 + drivers/video/fbdev/udlfb.c | 2 + drivers/video/fbdev/vermilion/vermilion.c | 2 + drivers/video/fbdev/vfb.c | 10 +- drivers/video/fbdev/vt8500lcdfb.c | 4 +- drivers/video/fbdev/wm8505fb.c | 2 + include/drm/drm_bridge.h | 2 +- include/drm/drm_drv.h | 9 + include/drm/drm_file.h | 12 + include/drm/drm_framebuffer.h | 12 - include/drm/drm_plane.h | 24 + include/drm/gpu_scheduler.h | 6 +- include/linux/fb.h | 16 +- include/uapi/drm/drm.h | 35 +- include/uapi/drm/drm_mode.h | 9 + include/uapi/drm/pvr_drm.h | 10 +- 128 files changed, 2243 insertions(+), 1102 deletions(-) create mode 100644 Documentation/gpu/drm-vm-bind-locking.rst