Currently the KMS and GPU parts of the msm driver are pretty much intertwined. It is impossible to register a KMS-only device and registering a GPU-only DRM device requires modifying the DT. Not to mention that binding the GPU-only device creates an interim platform devices, which complicates IOMMU setup.
Rework the driver: - Make it possible to disable KMS parts (if MDP4, MDP5 and DPU drivers are disabled). - Register GPU-only devices without an interim platform device. - Add module param that makes msm driver register GPU and KMS devices separately. Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@oss.qualcomm.com> --- Changes in v4: - Rebased on msm-next(-robclark) - Temporarily dropped the "no-GPU" patch, it will be reposted later (Rob) - Link to v3: https://lore.kernel.org/r/20250518-msm-gpu-split-v3-0-0e91e8e77...@oss.qualcomm.com Changes in v3: - Disabled SYNCOBJ / SYNCOBJ_TIMELINE for KMS-only driver (Rob Clark) - Further refine Kconfig dependencies - Link to v2: https://lore.kernel.org/r/20250503-msm-gpu-split-v2-0-1292cba0f...@oss.qualcomm.com Changes in v2: - Got rid of mdp4_crtc.id and msm_drm_private.num_crtcs - Moved msm_drm_private.wq and msm_drm_private.event_thread to struct msm_kms (Rob Clark) - Moved HDMI / DSI / DP pointers to msm_kms (Abhinav) - Link to v1: https://lore.kernel.org/r/20250413-msm-gpu-split-v1-0-1132f4b61...@oss.qualcomm.com --- Dmitry Baryshkov (10): drm/msm: move wq handling to KMS code drm/msm: move helper calls to msm_kms.c drm/msm/mdp4: get rid of mdp4_crtc.id drm/msm: get rid of msm_drm_private::num_crtcs drm/msm: move KMS driver data to msm_kms drm/msm: make it possible to disable KMS-related code. drm/msm: bail out late_init_minor() if it is not a GPU device drm/msm: rearrange symbol selection drm/msm: rework binding of Imageon GPUs drm/msm: enable separate binding of GPU and display devices drivers/gpu/drm/msm/Kconfig | 34 +++-- drivers/gpu/drm/msm/Makefile | 19 +-- drivers/gpu/drm/msm/adreno/adreno_device.c | 39 ++--- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 4 +- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 13 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 35 +++-- drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 9 +- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 13 +- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 2 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 2 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 17 ++- drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c | 12 +- drivers/gpu/drm/msm/dp/dp_debug.c | 4 + drivers/gpu/drm/msm/dp/dp_display.c | 6 +- drivers/gpu/drm/msm/dsi/dsi.c | 4 +- drivers/gpu/drm/msm/hdmi/hdmi.c | 9 +- drivers/gpu/drm/msm/msm_debugfs.c | 97 ++++++++----- drivers/gpu/drm/msm/msm_drv.c | 166 ++++++++++++++-------- drivers/gpu/drm/msm/msm_drv.h | 31 ++-- drivers/gpu/drm/msm/msm_kms.c | 41 +++++- drivers/gpu/drm/msm/msm_kms.h | 46 ++++++ 21 files changed, 360 insertions(+), 243 deletions(-) --- base-commit: 7df7b18268eb5c75e3978da5d183d8cc24d4e201 change-id: 20250411-msm-gpu-split-2701e49e40f0 Best regards, -- With best wishes Dmitry