On Fri, Oct 18, 2024, at 15:42, Dmitry Baryshkov wrote: > On Fri, Oct 18, 2024 at 03:08:45PM +0000, Arnd Bergmann wrote: >> From: Arnd Bergmann <arnd@xxxxxxxx> >> >> The imx display drivers use the new bridge connector helpers but don't >> explicitly select CONFIG_DRM_DISPLAY_HELPER, leading to a link failure >> in rare configurations: >> >> ld.lld-20: error: undefined symbol: drm_bridge_connector_init >> >>> referenced by imx-ldb.c >> >>> drivers/gpu/drm/imx/ipuv3/imx-ldb.o:(imx_ldb_bind) in archive vmlinux.a >> >>> referenced by parallel-display.c >> >>> drivers/gpu/drm/imx/ipuv3/parallel-display.o:(imx_pd_bind) in archive vmlinux.a >> >> Move DRM_BRIDGE_CONNECTOR out of the DRM_DISPLAY_HELPER block and >> instead select that symbol indirectly. >> >> Fixes: f94b9707a1c9 ("drm/imx: parallel-display: switch to imx_legacy_bridge / drm_bridge_connector") >> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > > I think a correct fix is to select DRM_DISPLAY_HELPER instead. I think I just didn't express that clearly enough, selecting DRM_DISPLAY_HELPER is what I did and what I tried to explain: >> config DRM_BRIDGE_CONNECTOR >> bool >> select DRM_DISPLAY_HDMI_STATE_HELPER >> + select DRM_DISPLAY_HELPER >> help >> DRM connector implementation terminating DRM bridge chains. I had to move the 'if' block just to avoid a circular dependency. Or did you mean the imx driver is the one that should 'select DRM_DISPLAY_HELPER'? That would also work, but adds a bit more complexity. Arnd