Hi, Here's the first drm-misc-next PR for what will become 6.8. There's one missing SoB on the commit 0da611a87021 ("dma-buf: add dma_fence_timestamp helper") from the committer. They provided their SoB on the ML here after the facts: https://lore.kernel.org/dri-devel/ce94020e-a7d4-4799-b87d-fbea7b14a268@gmail.com/ Maxime drm-misc-next-2023-11-17: drm-misc-next for 6.8: UAPI Changes: - drm: Introduce CLOSE_FB ioctl - drm/dp-mst: Documentation for the PATH property - fdinfo: Do not align to a MB if the size is larger than 1MiB - virtio-gpu: add explicit virtgpu context debug name Cross-subsystem Changes: - dma-buf: Add dma_fence_timestamp helper Core Changes: - client: Do not acquire module reference - edid: split out drm_eld, add SAD helpers - format-helper: Cache format conversion buffers - sched: Move from a kthread to a workqueue, rename some internal functions to make it clearer, implement dynamic job-flow control - gpuvm: Provide more features to handle GEM objects - tests: Remove slow kunit tests Driver Changes: - ivpu: Update FW API, new debugfs file, a new NOP job submission test mode, improve suspend/resume, PM improvements, MMU PT optimizations, firmware profiling frequency support, support for uncached buffers, switch to gem shmem helpers, replace kthread with threaded interrupts - panfrost: PM improvements - qaic: Allow to run with a single MSI, support host/device time synchronization, misc improvements - simplefb: Support memory-regions, support power-domains - ssd130x: Unitialized variable fixes - omapdrm: dma-fence lockdep annotation fix - tidss: dma-fence lockdep annotation fix - v3d: Support BCM2712 (RaspberryPi5), Support fdinfo and gputop - panel: - edp: Support AUO B116XTN02, BOE NT116WHM-N21,836X2, NV116WHM-N49 V8.0, plus a whole bunch of panels used on Mediatek chromebooks. The following changes since commit b85ea95d086471afb4ad062012a4d73cd328fa86: Linux 6.7-rc1 (2023-11-12 16:19:07 -0800) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2023-11-17 for you to fetch changes up to 3b434a3445fff3149128db0169da864d67057325: accel/ivpu: Use threaded IRQ to handle JOB done messages (2023-11-16 13:41:49 +0100) ---------------------------------------------------------------- drm-misc-next for 6.8: UAPI Changes: - drm: Introduce CLOSE_FB ioctl - drm/dp-mst: Documentation for the PATH property - fdinfo: Do not align to a MB if the size is larger than 1MiB - virtio-gpu: add explicit virtgpu context debug name Cross-subsystem Changes: - dma-buf: Add dma_fence_timestamp helper Core Changes: - client: Do not acquire module reference - edid: split out drm_eld, add SAD helpers - format-helper: Cache format conversion buffers - sched: Move from a kthread to a workqueue, rename some internal functions to make it clearer, implement dynamic job-flow control - gpuvm: Provide more features to handle GEM objects - tests: Remove slow kunit tests Driver Changes: - ivpu: Update FW API, new debugfs file, a new NOP job submission test mode, improve suspend/resume, PM improvements, MMU PT optimizations, firmware profiling frequency support, support for uncached buffers, switch to gem shmem helpers, replace kthread with threaded interrupts - panfrost: PM improvements - qaic: Allow to run with a single MSI, support host/device time synchronization, misc improvements - simplefb: Support memory-regions, support power-domains - ssd130x: Unitialized variable fixes - omapdrm: dma-fence lockdep annotation fix - tidss: dma-fence lockdep annotation fix - v3d: Support BCM2712 (RaspberryPi5), Support fdinfo and gputop - panel: - edp: Support AUO B116XTN02, BOE NT116WHM-N21,836X2, NV116WHM-N49 V8.0, plus a whole bunch of panels used on Mediatek chromebooks. ---------------------------------------------------------------- Ajit Pal Singh (1): accel/qaic: Add support for periodic timesync Andrzej Kacprowski (4): accel/ivpu: Add support for VPU_JOB_FLAGS_NULL_SUBMISSION_MASK accel/ivpu/40xx: Capture D0i3 entry host and device timestamps accel/ivpu: Pass D0i3 residency time to the VPU firmware accel/ivpu: Add support for delayed D0i3 entry message AngeloGioacchino Del Regno (7): drm/panfrost: Really power off GPU cores in panfrost_gpu_power_off() drm/panfrost: Perform hard reset to recover GPU if soft reset fails drm/panfrost: Tighten polling for soft reset and power on drm/panfrost: Implement ability to turn on/off GPU clocks in suspend drm/panfrost: Set clocks on/off during system sleep on MediaTek SoCs drm/panfrost: Implement ability to turn on/off regulators in suspend drm/panfrost: Set regulators on/off during system sleep on MediaTek SoCs Arnd Bergmann (1): accel/ivpu: avoid build failure with CONFIG_PM=n Carl Vanderlip (2): accel/qaic: Enable 1 MSI fallback mode accel/qaic: Quiet array bounds check on DMA abort message Christian König (1): dma-buf: add dma_fence_timestamp helper Danilo Krummrich (12): drm/sched: implement dynamic job-flow control drm/gpuvm: convert WARN() to drm_WARN() variants drm/gpuvm: don't always WARN in drm_gpuvm_check_overflow() drm/gpuvm: export drm_gpuvm_range_valid() drm/nouveau: make use of drm_gpuvm_range_valid() drm/gpuvm: add common dma-resv per struct drm_gpuvm drm/nouveau: make use of the GPUVM's shared dma-resv drm/gpuvm: add drm_gpuvm_flags to drm_gpuvm drm/nouveau: separately allocate struct nouveau_uvmm drm/gpuvm: reference count drm_gpuvm structures drm/gpuvm: add an abstraction for a VM / BO combination drm/gpuvm: track/lock/validate external/evicted objects Dario Binacchi (1): drm/panel: nt35510: fix typo Dmitry Osipenko (1): drm/virtio: Fix return value for VIRTGPU_CONTEXT_PARAM_DEBUG_NAME Emma Anholt (1): MAINTAINERS: Drop Emma Anholt from all M lines. Gurchetan Singh (2): drm/virtio: use uint64_t more in virtio_gpu_context_init_ioctl drm/uapi: add explicit virtgpu context debug name Hsin-Yi Wang (3): drm/panel-edp: drm/panel-edp: Fix AUO B116XAK01 name and timing drm/panel-edp: drm/panel-edp: Fix AUO B116XTN02 name drm/panel-edp: drm/panel-edp: Add several generic edp panels Iago Toral Quiroga (4): drm/v3d: update UAPI to match user-space for V3D 7.x drm/v3d: fix up register addresses for V3D 7.x dt-bindings: gpu: v3d: Add BCM2712's compatible drm/v3d: add brcm,2712-v3d as a compatible V3D device Jacek Lawrynowicz (8): accel/ivpu: Simplify MMU SYNC command accel/ivpu: Rename VPU to NPU in product strings accel/ivpu: Fix compilation with CONFIG_PM=n accel/ivpu: Allocate vpu_addr in gem->open() callback accel/ivpu: Fix locking in ivpu_bo_remove_all_bos_from_context() accel/ivpu: Remove support for uncached buffers accel/ivpu: Use GEM shmem helper for all buffers accel/ivpu: Use threaded IRQ to handle JOB done messages Jani Nikula (6): drm/edid: split out drm_eld.h from drm_edid.h drm/eld: replace uint8_t with u8 drm/edid: include drm_eld.h only where required drm/edid: use a temp variable for sads to drop one level of dereferences drm/edid: add helpers to get/set struct cea_sad from/to 3-byte sad drm/eld: add helpers to modify the SADs of an ELD Javier Martinez Canillas (2): dt-bindings: display: ssd132x: Remove '-' before compatible enum drm/ssd130x: Fix possible uninitialized usage of crtc_state variable Karol Wachowski (5): accel/ivpu: Remove reset from power up sequence accel/ivpu: Change test_mode module param to bitmask accel/ivpu: Introduce ivpu_ipc_send_receive_active() accel/ivpu: Print CMDQ errors after consumer timeout accel/ivpu: Make DMA allocations for MMU600 write combined Krystian Pradzynski (2): accel/ivpu: Update FW API accel/ivpu/40xx: Allow to change profiling frequency Kunwu Chan (1): drm/atomic-helper: Fix spelling mistake "preceeding" -> "preceding" Luben Tuikov (4): drm/sched: Don't disturb the entity when in RR-mode scheduling drm/sched: Qualify drm_sched_wakeup() by drm_sched_entity_is_ready() drm/sched: Define pr_fmt() for DRM using pr_*() Revert "drm/sched: Define pr_fmt() for DRM using pr_*()" Marco Pagani (1): drm/test: rearrange test entries in Kconfig and Makefile Matthew Brost (5): drm/sched: Add drm_sched_wqueue_* helpers drm/sched: Convert drm scheduler to use a work queue rather than kthread drm/sched: Split free_job into own work item drm/sched: Add drm_sched_start_timeout_unlocked helper drm/sched: Add a helper to queue TDR immediately Maxime Ripard (3): drm/tests: Remove slow tests drm/todo: Add entry to clean up former seltests suites Merge drm/drm-next into drm-misc-next Maíra Canal (4): drm/v3d: wait for all jobs to finish before unregistering drm/v3d: Implement show_fdinfo() callback for GPU usage stats drm/v3d: Expose the total GPU usage stats on sysfs MAINTAINERS: Add Maira to V3D maintainers Michał Winiarski (1): iosys-map: Rename locals used inside macros Pranjal Ramajor Asha Kanojiya (2): accel/qaic: Support MHI QAIC_TIMESYNC channel accel/qaic: Support for 0 resize slice execution in BO Sheng-Liang Pan (1): drm/panel-edp: Add AUO B116XTN02, BOE NT116WHM-N21,836X2, NV116WHM-N49 V8.0 Simon Ser (3): drm: extract closefb logic in separate function drm: introduce CLOSEFB IOCTL drm/doc: describe PATH format for DP MST Stanislaw Gruszka (9): accel/ivpu: Remove unneeded drm_driver declaration accel/ivpu/37xx: Print warning when VPUIP is not idle during power down accel/ivpu: Assure device is off if power up sequence fail accel/ivpu: Stop job_done_thread on suspend accel/ivpu: Abort pending rx ipc on reset accel/ivpu: Rename cons->rx_msg_lock accel/ivpu: Do not use irqsave in ivpu_ipc_dispatch accel/ivpu: Do not use cons->aborted for job_done_thread accel/ivpu: Use dedicated work for job timeout detection Steven Price (1): drm/panfrost: Remove incorrect IS_ERR() check Thierry Reding (2): fbdev/simplefb: Support memory-region property fbdev/simplefb: Add support for generic power-domains Thomas Zimmermann (9): drm/format-helper: Cache buffers with struct drm_format_conv_state drm/atomic-helper: Add format-conversion state to shadow-plane state drm/format-helper: Pass format-conversion state to helpers drm/ofdrm: Preallocate format-conversion buffer in atomic_check drm/simpledrm: Preallocate format-conversion buffer in atomic_check drm/ssd130x: Preallocate format-conversion buffer in atomic_check drm: Remove struct drm_flip_task from DRM interfaces drm: Fix flip-task docs drm/client: Do not acquire module reference Tomasz Rusinowicz (1): accel/ivpu: Add dvfs_mode file to debugfs Tomi Valkeinen (2): Revert "drm/tidss: Annotate dma-fence critical section in commit path" Revert "drm/omapdrm: Annotate dma-fence critical section in commit path" Tvrtko Ursulin (6): drm/sched: Rename drm_sched_get_cleanup_job to be more descriptive drm/sched: Move free worker re-queuing out of the if block drm/sched: Rename drm_sched_free_job_queue to be more descriptive drm/sched: Rename drm_sched_run_job_queue_if_ready and clarify kerneldoc drm/sched: Drop suffix from drm_sched_wakeup_if_can_queue drm: Do not round to megabytes for greater than 1MiB sizes in fdinfo stats Documentation/accel/qaic/aic100.rst | 11 +- Documentation/accel/qaic/qaic.rst | 28 + .../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 1 + Documentation/gpu/drm-kms-helpers.rst | 6 + Documentation/gpu/drm-mm.rst | 6 + Documentation/gpu/todo.rst | 17 + MAINTAINERS | 9 +- drivers/accel/ivpu/Kconfig | 11 +- drivers/accel/ivpu/ivpu_debugfs.c | 57 + drivers/accel/ivpu/ivpu_drv.c | 49 +- drivers/accel/ivpu/ivpu_drv.h | 18 +- drivers/accel/ivpu/ivpu_fw.c | 79 +- drivers/accel/ivpu/ivpu_fw.h | 1 + drivers/accel/ivpu/ivpu_gem.c | 692 +++---- drivers/accel/ivpu/ivpu_gem.h | 75 +- drivers/accel/ivpu/ivpu_hw.h | 20 + drivers/accel/ivpu/ivpu_hw_37xx.c | 70 +- drivers/accel/ivpu/ivpu_hw_37xx_reg.h | 2 + drivers/accel/ivpu/ivpu_hw_40xx.c | 69 +- drivers/accel/ivpu/ivpu_ipc.c | 249 ++- drivers/accel/ivpu/ivpu_ipc.h | 33 +- drivers/accel/ivpu/ivpu_job.c | 99 +- drivers/accel/ivpu/ivpu_job.h | 4 +- drivers/accel/ivpu/ivpu_jsm_msg.c | 38 + drivers/accel/ivpu/ivpu_jsm_msg.h | 1 + drivers/accel/ivpu/ivpu_mmu.c | 44 +- drivers/accel/ivpu/ivpu_mmu_context.c | 153 +- drivers/accel/ivpu/ivpu_mmu_context.h | 11 +- drivers/accel/ivpu/ivpu_pm.c | 75 +- drivers/accel/ivpu/ivpu_pm.h | 3 + drivers/accel/ivpu/vpu_boot_api.h | 90 +- drivers/accel/ivpu/vpu_jsm_api.h | 309 +++- drivers/accel/qaic/Makefile | 3 +- drivers/accel/qaic/mhi_controller.c | 42 +- drivers/accel/qaic/mhi_controller.h | 2 +- drivers/accel/qaic/qaic.h | 6 + drivers/accel/qaic/qaic_control.c | 2 +- drivers/accel/qaic/qaic_data.c | 137 +- drivers/accel/qaic/qaic_drv.c | 48 +- drivers/accel/qaic/qaic_timesync.c | 395 ++++ drivers/accel/qaic/qaic_timesync.h | 11 + drivers/gpu/drm/Kconfig | 10 +- drivers/gpu/drm/Makefile | 1 + .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 15 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 14 +- drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 2 +- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1 + drivers/gpu/drm/drm_atomic_helper.c | 4 +- drivers/gpu/drm/drm_client.c | 12 +- drivers/gpu/drm/drm_connector.c | 6 + drivers/gpu/drm/drm_crtc_internal.h | 2 + drivers/gpu/drm/drm_edid.c | 43 +- drivers/gpu/drm/drm_eld.c | 55 + drivers/gpu/drm/drm_file.c | 2 +- drivers/gpu/drm/drm_flip_work.c | 27 +- drivers/gpu/drm/drm_format_helper.c | 215 ++- drivers/gpu/drm/drm_framebuffer.c | 75 +- drivers/gpu/drm/drm_gem_atomic_helper.c | 9 + drivers/gpu/drm/drm_gpuvm.c | 1133 +++++++++++- drivers/gpu/drm/drm_internal.h | 6 + drivers/gpu/drm/drm_ioctl.c | 1 + drivers/gpu/drm/drm_mipi_dbi.c | 19 +- drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 2 +- drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 2 +- drivers/gpu/drm/etnaviv/etnaviv_sched.c | 2 +- drivers/gpu/drm/gud/gud_pipe.c | 30 +- drivers/gpu/drm/i915/display/intel_audio.c | 1 + .../gpu/drm/i915/display/intel_crtc_state_dump.c | 1 + drivers/gpu/drm/i915/display/intel_sdvo.c | 1 + drivers/gpu/drm/lima/lima_device.c | 2 +- drivers/gpu/drm/lima/lima_sched.c | 4 +- drivers/gpu/drm/msm/adreno/adreno_device.c | 6 +- drivers/gpu/drm/msm/msm_gem_submit.c | 2 +- drivers/gpu/drm/msm/msm_ringbuffer.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/disp.c | 1 + drivers/gpu/drm/nouveau/nouveau_bo.c | 11 +- drivers/gpu/drm/nouveau/nouveau_bo.h | 5 + drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +- drivers/gpu/drm/nouveau/nouveau_drv.h | 10 +- drivers/gpu/drm/nouveau/nouveau_gem.c | 10 +- drivers/gpu/drm/nouveau/nouveau_sched.c | 4 +- drivers/gpu/drm/nouveau/nouveau_uvmm.c | 192 +- drivers/gpu/drm/nouveau/nouveau_uvmm.h | 8 - drivers/gpu/drm/omapdrm/omap_drv.c | 9 +- drivers/gpu/drm/panel/panel-edp.c | 58 +- drivers/gpu/drm/panel/panel-novatek-nt35510.c | 2 +- drivers/gpu/drm/panfrost/panfrost_device.c | 78 +- drivers/gpu/drm/panfrost/panfrost_device.h | 13 + drivers/gpu/drm/panfrost/panfrost_drv.c | 5 +- drivers/gpu/drm/panfrost/panfrost_dump.c | 12 +- drivers/gpu/drm/panfrost/panfrost_gpu.c | 85 +- drivers/gpu/drm/panfrost/panfrost_job.c | 4 +- drivers/gpu/drm/panfrost/panfrost_regs.h | 1 + drivers/gpu/drm/radeon/radeon_audio.c | 1 + drivers/gpu/drm/scheduler/gpu_scheduler_trace.h | 2 +- drivers/gpu/drm/scheduler/sched_entity.c | 4 +- drivers/gpu/drm/scheduler/sched_main.c | 480 +++-- drivers/gpu/drm/solomon/ssd130x.c | 38 +- drivers/gpu/drm/tegra/hdmi.c | 1 + drivers/gpu/drm/tegra/sor.c | 1 + drivers/gpu/drm/tests/Makefile | 4 +- drivers/gpu/drm/tests/drm_buddy_test.c | 465 ----- drivers/gpu/drm/tests/drm_format_helper_test.c | 72 +- drivers/gpu/drm/tests/drm_mm_test.c | 1904 -------------------- drivers/gpu/drm/tidss/tidss_kms.c | 4 - drivers/gpu/drm/tiny/cirrus.c | 3 +- drivers/gpu/drm/tiny/ili9225.c | 10 +- drivers/gpu/drm/tiny/ofdrm.c | 16 +- drivers/gpu/drm/tiny/repaper.c | 10 +- drivers/gpu/drm/tiny/simpledrm.c | 43 +- drivers/gpu/drm/tiny/st7586.c | 19 +- drivers/gpu/drm/v3d/Makefile | 3 +- drivers/gpu/drm/v3d/v3d_debugfs.c | 170 +- drivers/gpu/drm/v3d/v3d_drv.c | 46 +- drivers/gpu/drm/v3d/v3d_drv.h | 31 + drivers/gpu/drm/v3d/v3d_gem.c | 15 +- drivers/gpu/drm/v3d/v3d_irq.c | 93 +- drivers/gpu/drm/v3d/v3d_regs.h | 90 +- drivers/gpu/drm/v3d/v3d_sched.c | 81 +- drivers/gpu/drm/v3d/v3d_sysfs.c | 69 + drivers/gpu/drm/virtio/virtgpu_drv.h | 5 + drivers/gpu/drm/virtio/virtgpu_ioctl.c | 41 +- drivers/video/fbdev/simplefb.c | 128 +- include/drm/drm_edid.h | 148 -- include/drm/drm_eld.h | 164 ++ include/drm/drm_flip_work.h | 20 +- include/drm/drm_format_helper.h | 81 +- include/drm/drm_gem.h | 32 +- include/drm/drm_gem_atomic_helper.h | 10 + include/drm/drm_gpuvm.h | 521 +++++- include/drm/drm_mipi_dbi.h | 4 +- include/drm/gpu_scheduler.h | 50 +- include/linux/iosys-map.h | 44 +- include/uapi/drm/drm.h | 20 + include/uapi/drm/drm_mode.h | 10 + include/uapi/drm/ivpu_accel.h | 2 +- include/uapi/drm/qaic_accel.h | 5 +- include/uapi/drm/v3d_drm.h | 5 + include/uapi/drm/virtgpu_drm.h | 2 + sound/core/pcm_drm_eld.c | 1 + sound/soc/codecs/hdac_hdmi.c | 1 + sound/soc/codecs/hdmi-codec.c | 1 + sound/x86/intel_hdmi_audio.c | 1 + 144 files changed, 5782 insertions(+), 4387 deletions(-) create mode 100644 drivers/accel/qaic/qaic_timesync.c create mode 100644 drivers/accel/qaic/qaic_timesync.h create mode 100644 drivers/gpu/drm/drm_eld.c create mode 100644 drivers/gpu/drm/v3d/v3d_sysfs.c create mode 100644 include/drm/drm_eld.h