On Tue, Apr 28, 2020 at 11:43 PM Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> wrote: > On 4/28/20 4:27 PM, Arnd Bergmann wrote: > > The imx8 config keeps causing issues: > > > > WARNING: unmet direct dependencies detected for SND_SOC_SOF_IMX8M > > Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=m] && SND_SOC_SOF_TOPLEVEL [=y] && SND_SOC_SOF_IMX_TOPLEVEL [=y] && IMX_DSP [=n] > > Selected by [m]: > > - SND_SOC_SOF_IMX_OF [=m] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=m] && SND_SOC_SOF_TOPLEVEL [=y] && SND_SOC_SOF_IMX_TOPLEVEL [=y] && SND_SOC_SOF_IMX8M_SUPPORT [=y] > > > > This is complicated by two drivers having dependencies on both > > platform specific drivers and the SND_SOC_SOF_OF framework code, > > and using an somewhat obscure method to build them the same way > > as the SOC_SOF_OF symbol (built-in or modular). > > > > My solution now ensures that the two drivers can only be enabled > > when the dependencies are met: > > > > - When the platform specific drivers are built-in, everything is > > fine, as SOC_SOF_OF is either =y or =m > > > > - When both are loadable modules, it also works, both for Kconfig > > and at runtime > > > > - When the hardware drivers are loadable modules or disabled, and > > SOC_SOF_OF=y, prevent the IMX_SOF_OF drivers from being turned on, > > as this would be broken. > > > > It seems that this is just an elaborate way to describe two tristate > > symbols that have straight dependencies, but maybe I'm missing some > > subtle point. It seems to always build for me now. > > Thanks Arnd, do you mind sharing your config? https://pastebin.com/HRX5xi3R > We noticed last week that > there's a depend/select confusion might be simpler to fix, see > https://github.com/thesofproject/linux/pull/2047/commits > > If I look at the first line I see a IMX_DSP=n which looks exactly like > what we wanted to fix. Yes, I think that fix addresses the build warning as well, but looking more closely I don't think it's what you want: If you do this on a config that has the IMX_DSP disabled, it would appear to the user that you have enabled the drivers, but the actual code is still disabled. Arnd