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>

Reply via email to