drm: sprd: Make the Unisoc DRM driver usable on UMS9230
From: | Otto Pflüger <otto.pflueger-AT-abscue.de> | |
To: | David Airlie <airlied-AT-gmail.com>, Simona Vetter <simona-AT-ffwll.ch>, Maarten Lankhorst <maarten.lankhorst-AT-linux.intel.com>, Maxime Ripard <mripard-AT-kernel.org>, Thomas Zimmermann <tzimmermann-AT-suse.de>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>, Orson Zhai <orsonzhai-AT-gmail.com>, Baolin Wang <baolin.wang-AT-linux.alibaba.com>, Chunyan Zhang <zhang.lyra-AT-gmail.com>, Kevin Tang <kevin.tang-AT-unisoc.com>, Liviu Dudau <Liviu.Dudau-AT-arm.com>, Russell King <rmk+kernel-AT-arm.linux.org.uk>, Eric Anholt <eric-AT-anholt.net>, Kevin Tang <kevin3.tang-AT-gmail.com> | |
Subject: | [PATCH v3 00/16] drm: sprd: Make the Unisoc DRM driver usable on UMS9230 | |
Date: | Thu, 31 Jul 2025 17:51:13 +0200 | |
Message-ID: | <20250731-ums9230-drm-v3-0-06d4f57c4b08@abscue.de> | |
Cc: | dri-devel-AT-lists.freedesktop.org, devicetree-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Otto Pflüger <otto.pflueger-AT-abscue.de>, Krzysztof Kozlowski <krzysztof.kozlowski-AT-linaro.org> | |
Archive-link: | Article |
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.pflueger@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-05427... 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-e4344... --- 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.pflueger@abscue.de>