[v3 0/6] DRM driver for verisilicon

From: Keith Zhao
Date: Mon Dec 04 2023 - 07:33:45 EST


This patch is a drm driver for Starfive Soc JH7110,
I am sending Drm driver part and HDMI driver part.

We used GEM framework for buffer management,
and for buffer allocation,we use DMA APIs.

the Starfive HDMI servers as interface between a LCD Controller
and a HDMI bus.
A HDMI TX consists of one HDMI transmitter controller
and one HDMI transmitter PHY.
(Sound support is not include in this patch)

This patchset should be applied on next branch.

V1:
Changes since v1:
- Further standardize the yaml file.
- Dts naming convention improved.
- Fix the problem of compiling and loading ko files.
- Use drm new api to automatically manage resources.
- Drop vs_crtc_funcs&vs_plane_funcs, subdivide the plane's help interface.
- Reduce the modifiers unused.
- Optimize the hdmi driver code

V2:
Changes since v2:
- fix the error about checking the yaml file.
- match drm driver GEM DMA API.
- Delete the custom crtc property .
- hdmi use drmm_ new api to automatically manage resources.
- update the modifiers comments.
- enabling KASAN, fix the error during removing module

V3:
Changes since v3:
- Delete the custom plane property.
- Delete the custom fourcc modifiers.
- Adjust the calculation mode of hdmi pixclock.
- Add match data for dc8200 driver.
- Adjust some magic values.
- Add a simple encoder for dsi output.

Keith Zhao (6):
dt-bindings: display: Add yamls for JH7110 display system
riscv: dts: starfive: jh7110: display subsystem
drm/vs: Register DRM device
drm/vs: Add KMS crtc&plane
drm/vs: Add hdmi driver
drm/vs: simple encoder

.../starfive/starfive,display-subsystem.yaml | 104 ++
.../starfive/starfive,dsi-encoder.yaml | 92 ++
.../starfive/starfive,jh7110-dc8200.yaml | 113 ++
.../starfive/starfive,jh7110-inno-hdmi.yaml | 82 ++
.../soc/starfive/starfive,jh7110-syscon.yaml | 1 +
MAINTAINERS | 8 +
.../jh7110-starfive-visionfive-2.dtsi | 134 ++
arch/riscv/boot/dts/starfive/jh7110.dtsi | 49 +
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/verisilicon/Kconfig | 21 +
drivers/gpu/drm/verisilicon/Makefile | 12 +
drivers/gpu/drm/verisilicon/starfive_hdmi.c | 849 ++++++++++++
drivers/gpu/drm/verisilicon/starfive_hdmi.h | 304 +++++
drivers/gpu/drm/verisilicon/vs_crtc.c | 208 +++
drivers/gpu/drm/verisilicon/vs_crtc.h | 42 +
drivers/gpu/drm/verisilicon/vs_dc.c | 1192 +++++++++++++++++
drivers/gpu/drm/verisilicon/vs_dc.h | 67 +
drivers/gpu/drm/verisilicon/vs_dc_hw.c | 1022 ++++++++++++++
drivers/gpu/drm/verisilicon/vs_dc_hw.h | 580 ++++++++
drivers/gpu/drm/verisilicon/vs_drv.c | 323 +++++
drivers/gpu/drm/verisilicon/vs_drv.h | 46 +
drivers/gpu/drm/verisilicon/vs_modeset.c | 39 +
drivers/gpu/drm/verisilicon/vs_modeset.h | 10 +
drivers/gpu/drm/verisilicon/vs_plane.c | 301 +++++
drivers/gpu/drm/verisilicon/vs_plane.h | 39 +
drivers/gpu/drm/verisilicon/vs_simple_enc.c | 195 +++
drivers/gpu/drm/verisilicon/vs_simple_enc.h | 23 +
drivers/gpu/drm/verisilicon/vs_type.h | 69 +
29 files changed, 5928 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,display-subsystem.yaml
create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,dsi-encoder.yaml
create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,jh7110-dc8200.yaml
create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,jh7110-inno-hdmi.yaml
create mode 100644 drivers/gpu/drm/verisilicon/Kconfig
create mode 100644 drivers/gpu/drm/verisilicon/Makefile
create mode 100644 drivers/gpu/drm/verisilicon/starfive_hdmi.c
create mode 100644 drivers/gpu/drm/verisilicon/starfive_hdmi.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_crtc.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_crtc.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_dc.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_dc.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_dc_hw.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_dc_hw.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_drv.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_drv.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_modeset.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_modeset.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_plane.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_plane.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_simple_enc.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_simple_enc.h
create mode 100644 drivers/gpu/drm/verisilicon/vs_type.h

--
2.34.1