[Letux-kernel] [PATCH 8/8] drm/ingenic: Attach bridge chain to encoders
paul at boddie.org.uk
Tue Aug 10 01:17:20 CEST 2021
On Monday, 9 August 2021 18:22:12 CEST Paul Cercueil wrote:
> Le lun., août 9 2021 at 13:14:03 +0200, H. Nikolaus Schaller
<hns at goldelico.com> a écrit :
> > quick feedback: our HDMI on top compiles fine after fixing 2 merge
> > conflicts, but dos not yet work.
> > Will need some spare time with access to the CI20 board to research
> > the issue, i.e. can not give feedback immediately.
> Alright, no problem. I'll be back home in about 2 weeks and then I can
> test on my CI20 as well.
Just for reference, I looked into this initialisation failure. The HDMI
peripheral driver gets initialised satisfactorily...
dw-hdmi-ingenic 10180000.hdmi: Detected HDMI TX controller v1.31a with HDCP
(DWC HDMI 3D TX PHY)
dw-hdmi-ingenic 10180000.hdmi: registered DesignWare HDMI I2C bus driver
But then the reported error occurs in the DRM driver:
ingenic-drm 13050000.lcdc0: Unable to init connector
ingenic-drm: probe of 13050000.lcdc0 failed with error -22
This originates in a call to drm_bridge_connector_init from ingenic_drm_bind:
connector = drm_bridge_connector_init(drm, encoder);
The invoked function iterates over the registered bridges, one of which seems
to be the HDMI peripheral (it has bridge operations defined identically to
those specified in the Synopsys driver), but the type member of the drm_bridge
structure is set to 0 (DRM_MODE_CONNECTOR_Unknown).
I might expect the bridge to expose a type acquired from its connector, but I
don't see this propagation occurring in the Synopsys driver: dw_hdmi_probe
sets the bridge operations and other members of the drm_bridge structure, but
it doesn't set the type.
Also, it might be possible that dw_hdmi_connector_detect (exposed as the
detect operation) is not getting called, and this would explain why the
bridge's connector member does not have the connector_type set, either (since
it is also set to 0).
More information about the Letux-kernel