|
|
Subscribe / Log in / New account

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>



Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds