Re: [v3 0/6] DRM driver for verisilicon

2023-12-05 Thread Sui Jingfeng

Hi,

On 2023/12/4 20:33, Keith Zhao wrote:

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.



Please study Thomas's patch[1][2] carefully and write a good cover letter.
Introduce what each single patch does, demonstrate how the whole driver is
divided and organized, and why. And probably keep contact with him if he
would like to curve your driver to a good shape. :-)


[1] 
https://lore.kernel.org/dri-devel/20200715145902.13122-1-tzimmerm...@suse.de/
[2] 
https://lore.kernel.org/dri-devel/20231113091439.17181-1-tzimmerm...@suse.de/



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_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
   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
  

Re: [v3 0/6] DRM driver for verisilicon

2023-12-05 Thread Sui Jingfeng

HI,

This series are very interesting and nice!


On 2023/12/4 20:33, Keith Zhao wrote:

This patch is a drm driver for Starfive Soc JH7110,


'SoC' : System on Chip, no more 'Soc' or 'soc' please.


I am sending Drm driver part and HDMI driver part.



'DRM' or 'drm' nor Drm. DRM: Direct Rendering Manager.

Typically you should only *capitalize* the *first* letter of the first word
in a sentence, while this Drm appears in the middle of this sentence.

Please also improve the English written also, for example:

This series is a DRM driver for Starfive Soc JH7110, which contains (consists 
of)
a KMS driver for the vivante DC8200 display controller and a HDMI transmitter 
driver.




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


'servers' -> 'serve as', because server is a noun.


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_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
   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 

Re: [v3 0/6] DRM driver for verisilicon

2023-12-04 Thread Krzysztof Kozlowski
On 04/12/2023 13:33, Keith Zhao wrote:
> 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.

Please use standard email subjects, so with the PATCH keyword in the
title. `git format-patch` helps here to create proper versioned patches.
Another useful tool is b4. Skipping the PATCH keyword makes filtering of
emails more difficult thus making the review process less convenient.

Best regards,
Krzysztof



[v3 0/6] DRM driver for verisilicon

2023-12-04 Thread Keith Zhao
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_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
  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