On Fri, Jan 09, 2015 at 12:24:12PM +0200, Jyri Sarha wrote: > I think that would still fail if DRM and TDA998x is built in and SND_SOC is > built as modules. A request_module() call before tda9998x_codec_register() > should help. That doesn't fix the problem. If the DRM driver is built in, but the codec is not, and the DRM driver has a reference to tda9998x_codec_register(), then the vmlinux file will fail to link, and you'll never get the opportunity to call request_module(). > Or could could write: > > select SND_SOC_TDA998X if (SND_SOC=DRM_I2C_NXP_TDA998X || SND_SOC=y) I'm not sure that's right either. Let's go back and think about this: why should SND_SOC_TDA998X be *selected*. Let me put that a different way: why should this symbol be forced on just because we're building the DRM TDA998x driver? Would it be more sensible to make SND_SOC_TDA998X depend on DRM_I2C_NXP_TDA998X instead, maybe with a 'default y' - which is a kinder way to have SND_SOC_TDA998X be enabled. If SND_SOC_TDA998X doesn't have a prompt, then it'll automatically enable itself too this way when all its dependencies are satisfied. IMHO "select" is a very over-used, and in many cases an evil construct because its very hard to avoid breaking dependencies with it. -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html