On Tue, May 20, 2014 at 11:15:25AM +0200, Jean Delvare wrote: > The following configuration options combination: > > CONFIG_DRM_EXYNOS_DP=y > CONFIG_DRM_PTN3460=m > > currently leads to the following linker failure: > > drivers/built-in.o: In function `exynos_drm_attach_lcd_bridge': > .../drivers/gpu/drm/exynos/exynos_dp_core.c:1004: > undefined reference to `ptn3460_init' > > This is because ptn3460_init can't be implemented in a module while > its caller is built into the kernel. So add the proper dependency in > Kconfig so that the above can't happen. > > I moved DRM_PTN3460 earlier in Kconfig, next to the I2C helper module > section, so that the user has a chance to select it before moving to > the Exynos-specific section. > > IMHO the proper way to solve the problem would be to turn ptn3460 into > a clean I2C driver, similar to the other I2C helper chip drivers. It's > the only way to not sink into impossible-to-guess dependencies. Then > ptn3460 could even be moved together with the other I2C helper chip > drivers.
FWIW, various ideas have been discussed to solve this problem. The most recent agreement I think was to create a registry for bridge drivers to register DRM bridge objects against and allow drivers to look them up. That way we can get rid of the various *_init() functions that currently need to be called directly from within DRM drivers. I'm not aware of anybody working on this currently, hence I think this is an appropriate fix in the meantime: Reviewed-by: Thierry Reding <treding at nvidia.com> -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140521/92cc54e9/attachment.sig>