[PATCH v2 00/18] drm/rockchip: RK356x VOP2 support
Sascha Hauer
s.hauer at pengutronix.de
Wed Dec 8 07:12:12 PST 2021
This is the second round of the vop2 series. There are still some issues open,
but I thought it's about time to let people see and test it. I integrated the
review feedback I got from v1. Other changes include:
All framesync waiting is gone from the driver which makes it more straight
forward. To accomplish this the port_mux setup is now static in the driver.
This means each video port has a fixed maximum number of planes which is less
flexible but much easier to handle.
I also removed much of the register mapping and shadow register handling around
struct vop_reg. This basically resembles regmap and can eventually replaced by
regmap. Some places are still left in the driver, I plan to remove those in
later versions.
I think I have found the issue why only 1080p resolutions work, this seems to
be an issue in the way the clock tree is arranged. See the last patch in this
series which points to the problem, so far I don't have a good solution for it.
As usual, all comments and feedback welcome.
Sascha
Changes since v1:
- drop all unnecessary waiting for frames within atomic modeset and plane update
- Cluster subwin support removed
- gamma support removed
- unnecessary irq_lock removed
- interrupt handling simplified
- simplified zpos handling
- drop is_alpha_support(), use fb->format->has_alpha instead
- use devm_regulator_get() rather than devm_regulator_get_optional() for hdmi regulators
- Use fixed number of planes per video port
- Drop homegrown regmap code from vop2 driver (not complete yet)
- Add separate include file for vop2 driver to not pollute the vop include
Andy Yan (1):
drm: rockchip: Add VOP2 driver
Benjamin Gaignard (1):
dt-bindings: display: rockchip: dw-hdmi: Add compatible for rk3568
HDMI
Michael Riesch (1):
arm64: dts: rockchip: enable vop2 and hdmi tx on quartz64a
Sascha Hauer (15):
drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
drm/rockchip: dw_hdmi: rename vpll clock to reference clock
drm/rockchip: dw_hdmi: add rk3568 support
drm/rockchip: dw_hdmi: add regulator support
dt-bindings: display: rockchip: dw-hdmi: Make unwedge pinctrl optional
dt-bindings: display: rockchip: dw-hdmi: Allow "ref" as clock name
dt-bindings: display: rockchip: dw-hdmi: Add regulator support
arm64: dts: rockchip: rk3399: reorder hmdi clocks
dt-bindings: display: rockchip: Add binding for VOP2
arm64: dts: rockchip: rk356x: Add VOP2 nodes
arm64: dts: rockchip: rk356x: Add HDMI nodes
arm64: dts: rockchip: rk3568-evb: Enable VOP2 and hdmi
drm/encoder: Add of_graph port to struct drm_encoder
drm/rockchip: Make VOP driver optional
[HACK, RFC] clk: rk3568: do not divide dclk_vop0
.../display/rockchip/rockchip,dw-hdmi.yaml | 14 +-
.../display/rockchip/rockchip-vop2.yaml | 118 +
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 6 +-
.../boot/dts/rockchip/rk3566-quartz64-a.dts | 31 +
arch/arm64/boot/dts/rockchip/rk3566.dtsi | 4 +
.../boot/dts/rockchip/rk3568-evb1-v10.dts | 31 +
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 4 +
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 75 +
drivers/clk/rockchip/clk-rk3568.c | 4 +-
drivers/gpu/drm/rockchip/Kconfig | 14 +
drivers/gpu/drm/rockchip/Makefile | 4 +-
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 107 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 3 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 7 +-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 2 +
drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 15 +
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 2636 +++++++++++++++++
drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 625 ++++
drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 505 ++++
include/drm/drm_encoder.h | 2 +
include/dt-bindings/soc/rockchip,vop2.h | 14 +
21 files changed, 4193 insertions(+), 28 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml
create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_vop2.h
create mode 100644 drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
create mode 100644 include/dt-bindings/soc/rockchip,vop2.h
--
2.30.2
More information about the Linux-rockchip
mailing list