[PATCH 0/7] drm/sun4i: dw-hdmi: Fix initialization & refactor

From: Jernej Skrabec
Date: Sun Sep 24 2023 - 15:26:20 EST


Main goal of this series is to fix race condition between probing display
connector driver and sun8i dw-hdmi platform driver. Sometimes, boards have
ddc-en gpio specified in DT file. This is handled by display connector
driver since commit 920169041baa ("drm/sun4i: dw-hdmi: Fix ddc-en GPIO
consumer conflict"). However, because there is no link between it and
sun8i dw-hdmi driver, probe order isn't determined. If display connector
driver if probed afterwards, then sun8i dw-hdmi driver won't be able to
read EDID and thus fall back to 1024x768. This can be easily solved by
using bridges and linking them together. Coincidentally, switching to
bridge model is also long term goal.

I found out some other issues when working on them (missing phy deinit and
memory corruption during executing fail path). Since there is now a bigger
chance of deferring probe, it's also good to skip reporting deferred probe
as error. This often confuses users when examining dmesg output, especially
if there is no error code reported.

I also throw 2 refactoring patches for a good measure.

Please take a look.

Best regards,
Jernej

Jernej Skrabec (7):
drm/sun4i: dw-hdmi: Deinit PHY in fail path
drm/sun4i: dw-hdmi: Remove double encoder cleanup
drm/sun4i: dw-hdmi: Switch to bridge functions
drm/sun4i: Don't show error for deferred probes.
drm/sun4i: dw-hdmi: Split driver registration
drm/sun4i: dw-hdmi: Make sun8i_hdmi_phy_get() more intuitive
drm/sun4i: dw-hdmi: check for phy device first

drivers/gpu/drm/sun4i/sun4i_drv.c | 3 +-
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 191 ++++++++++++++++++-------
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 9 +-
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 13 +-
4 files changed, 151 insertions(+), 65 deletions(-)

--
2.42.0