Build error: MSM DRM

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Feb 24 03:15:01 PST 2014


Automated build testing of allmodconfig discovered this error in the
MSM DRM driver:

drivers/gpu/drm/msm/hdmi/hdmi.o:(.rodata+0x10): multiple definition of `__mod_of_device_table'
drivers/gpu/drm/msm/adreno/a3xx_gpu.o:(.rodata+0x4dc): first defined here

It appears that this will happen whenever the MSM DRM driver is built
as a module.  It's unclear what the correct fix is - since making it a
"bool" will make it unusable if the rest of DRM is configured modular,
and it's not trivial to split these files.

Since this is yet another multiple-device monstrosity pretending to look
like a single device (though slightly saner than other stuff, but still
ultimately unsafe - nothing guarantees for instance that hdmi_pdev
remains valid) the right solution to this would be to convert the thing
to use the component infrastructure included in v3.14-rc, which then
allows the MSM driver to be multiple stand alone modules.

This is clearly what the driver needs if it's actually made up from
multiple drivers.

While there's no examples of how to do this in mainline yet, two examples
of such converted drivers have been posted on LAKML and elsewhere - which
are the imx-drm and armada-drm drivers.

-- 
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.


More information about the dri-devel mailing list