From: Andy Yan <andy.yan@rock-chips.com>
When preparing to convert the current inno hdmi driver into a
bridge driver, I found that there are several issues currently
existing with it:
1. When the system starts up, the first time it reads the EDID, it
will fail. This is because RK3036 HDMI DDC bus requires it's PHY's
reference clock to be enabled first before normal DDC communication
can be carried out.
2. The signal is unstable. When running the glmark2 test on the screen,
there is a small probability of seeing some screen flickering.
This is because The HSYNC/VSYNC polarity of rk3036 HDMI are controlled
by GRF. This part is missing in the current driver.
PATCH 1~6 are try to Fix Document in the dt-binding, then add the
missing part in driver and dts.
PATCH 7 converts the curren driver to drm bridge mode.
Changes in v3:
- Convert to drm bridge driver
- Link to V2: https://lore.kernel.org/dri-devel/20250325132944.171111-1-andyshrk@163.com/
Changes in v2:
- Included the HSYNC/VSYNC polarity fix
- Link to V1: https://lore.kernel.org/linux-rockchip/20250324103332.159682-1-andyshrk@163.com/
Andy Yan (7):
dt-bindings: display: rockchip,inno-hdmi: Fix Document of RK3036
compatible
dt-bindings: display: rockchip,inno-hdmi: Document GRF for RK3036 HDMI
drm/rockchip: inno-hdmi: Simplify error handler with dev_err_probe
drm/rockchip: inno-hdmi: Fix video timing HSYNC/VSYNC polarity setting
for rk3036
ARM: dts: rockchip: Add ref clk for hdmi
Revert "ARM: dts: rockchip: drop grf reference from rk3036 hdmi"
drm/rockchip: inno-hdmi: Convert to drm bridge
.../display/rockchip/rockchip,inno-hdmi.yaml | 20 +-
arch/arm/boot/dts/rockchip/rk3036.dtsi | 5 +-
drivers/gpu/drm/bridge/Kconfig | 7 +
drivers/gpu/drm/bridge/Makefile | 1 +
.../inno_hdmi.c => bridge/inno-hdmi.c} | 907 ++++++++++--------
drivers/gpu/drm/rockchip/Kconfig | 1 +
drivers/gpu/drm/rockchip/Makefile | 2 +-
drivers/gpu/drm/rockchip/inno_hdmi-rockchip.c | 187 ++++
drivers/gpu/drm/rockchip/inno_hdmi.h | 349 -------
include/drm/bridge/inno_hdmi.h | 33 +
10 files changed, 760 insertions(+), 752 deletions(-)
rename drivers/gpu/drm/{rockchip/inno_hdmi.c => bridge/inno-hdmi.c} (52%)
create mode 100644 drivers/gpu/drm/rockchip/inno_hdmi-rockchip.c
delete mode 100644 drivers/gpu/drm/rockchip/inno_hdmi.h
create mode 100644 include/drm/bridge/inno_hdmi.h
--
2.43.0