Fix some existing bugs that prevent the driver from working properly and adapt the platform-specific code to support the UMS9230 SoC.
Signed-off-by: Otto Pflüger <otto.pflue...@abscue.de> --- Changes in v3: - Split the device tree clock name change into a separate patch - Add Fixes tags for all patches that fix something - Open-code drm_simple_encoder_init() - Use devm_drm_bridge_alloc for bridge allocation - To account for the new atomic commit order, do not rely on the DPU being initialized during pre_enable - Correct remaining uses of drm_gem_dma/drm_fb_dma to use the custom buffer object type - Return the sgtable instead of 0 in sprd_gem_object_get_sgtable when the IOMMU is not in use - Reword some commit messages - Link to v2: https://lore.kernel.org/r/20250722-ums9230-drm-v2-0-054276ec2...@abscue.de Changes in v2: - Fix device tree binding syntax - Use more descriptive clock names - Keep IOMMU handle in DPU node and make the driver handle this instead (otherwise the binding turns out to be incorrect for newer hardware) - Remove all accesses to IOMMU registers from the DPU driver (after observing that sharkl3 can also use sprd_iommu, I concluded that they should not be needed at all) - Fix container_of macros in sprd_dsi.h - Link to v1: https://lore.kernel.org/r/20250719-ums9230-drm-v1-0-e4344a05e...@abscue.de --- Otto Pflüger (16): dt-bindings: display: sprd: adapt for UMS9230 support dt-bindings: display: sprd: use more descriptive clock names dt-bindings: display: sprd: add memory-region property dt-bindings: display: sprd: allow attaching a DSI panel drm: of: try binding port parent node instead of the port itself drm: sprd: remove plane and CRTC destroy callbacks drm: sprd: register a DSI bridge and initialize in pre_enable drm: sprd: add support for UMS9230 DSI PLL drm: sprd: fix DSI rate and PLL setup code drm: sprd: select REGMAP in Kconfig drm: sprd: add clock gating support drm: sprd: add support for newer DPU versions drm: sprd: always initialize DPU registers drm: sprd: do not access IOMMU registers drm: sprd: implement IOMMU-based buffer management drm: sprd: add fbdev support .../bindings/display/sprd/sprd,sharkl3-dpu.yaml | 32 +- .../display/sprd/sprd,sharkl3-dsi-host.yaml | 42 ++- drivers/gpu/drm/drm_of.c | 2 +- drivers/gpu/drm/sprd/Kconfig | 3 + drivers/gpu/drm/sprd/Makefile | 3 +- drivers/gpu/drm/sprd/megacores_pll.c | 28 +- drivers/gpu/drm/sprd/sprd_dpu.c | 72 +++-- drivers/gpu/drm/sprd/sprd_dpu.h | 1 + drivers/gpu/drm/sprd/sprd_drm.c | 57 +++- drivers/gpu/drm/sprd/sprd_drm.h | 10 + drivers/gpu/drm/sprd/sprd_dsi.c | 221 ++++++++----- drivers/gpu/drm/sprd/sprd_dsi.h | 20 +- drivers/gpu/drm/sprd/sprd_gem.c | 343 +++++++++++++++++++++ drivers/gpu/drm/sprd/sprd_gem.h | 34 ++ 14 files changed, 727 insertions(+), 141 deletions(-) --- base-commit: 84b92a499e7eca54ba1df6f6c6e01766025943f1 change-id: 20250719-ums9230-drm-eb271289bfcd Best regards, -- Otto Pflüger <otto.pflue...@abscue.de>