Hi Randy,
On Wed, Sep 8, 2021 at 10:14 PM Randy Dunlap rdunlap@infradead.org wrote:
On 9/6/21 12:14 AM, Geert Uytterhoeven wrote:
On Fri, Sep 3, 2021 at 9:53 PM Randy Dunlap rdunlap@infradead.org wrote:
On 9/2/21 9:44 AM, Geert Uytterhoeven wrote:
On Thu, Jul 8, 2021 at 6:51 PM Randy Dunlap rdunlap@infradead.org wrote:
On 7/8/21 1:19 AM, Codrin.Ciubotariu@microchip.com wrote:
On 08.07.2021 00:47, Randy Dunlap wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > On a config (such as arch/sh/) which does not set HAS_DMA when MMU > is not set, several ATMEL ASoC drivers select symbols that cause > kconfig warnings. There is one "depends on HAS_DMA" which is no longer > needed. Dropping it eliminates the kconfig warnings and still builds > with no problems reported. > > Fix the following kconfig warnings: > > WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC > Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && HAS_DMA [=n] > Selected by [m]: > - SND_ATMEL_SOC_SSC [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] > - SND_ATMEL_SOC_SSC_PDC [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] > > WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC_PDC > Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] && HAS_DMA [=n] > Selected by [m]: > - SND_AT91_SOC_SAM9G20_WM8731 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && SND_SOC_I2C_AND_SPI [=m] > > WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC > Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && HAS_DMA [=n] > Selected by [m]: > - SND_ATMEL_SOC_SSC_DMA [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] > > WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC_DMA > Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] && HAS_DMA [=n] > Selected by [m]: > - SND_ATMEL_SOC_WM8904 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && I2C [=m] > - SND_AT91_SOC_SAM9X5_WM8731 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && SND_SOC_I2C_AND_SPI [=m] > > Fixes: 3951e4aae2ce ("ASoC: atmel-pcm: dma support based on pcm dmaengine") > Fixes: 18291410557f ("ASoC: atmel: enable SOC_SSC_PDC and SOC_SSC_DMA in Kconfig") > Fixes: 061981ff8cc8 ("ASoC: atmel: properly select dma driver state")
I am not sure about these fixes tags. As Alexandre mentioned, it looks like the reason for HAS_DMA in the first place was the COMPILE_TEST with m32r arch. I dig a bit, and, if any, I think we should use: Fixes: eb17726b00b3 ("m32r: add simple dma") since this commit adds dummy DMA support for m32r and seems to fix the HAS_DMA dependency.
Ah, I forgot to update the Fixes: tag(s).
I won't disagree with your Fixes: suggestion (good digging) but I would probably have used 8d7d11005e930: ASoC: atmel: fix build failure which is the commit that added "depends on HAS_DMA".
M32r was not the only platform NO_DMA, so I guess the build would have failed for the others, too (e.g. Sun-3).
So the real fix was probably commit f29ab49b5388b2f8 ("dma-mapping: Convert NO_DMA get_dma_ops() into a real dummy"), or one of the related commits adding dummies to subsystems.
Does this mean that some other actions are needed here? E.g. revert + a different kind of fix?
While we can now compile drivers using DMA features on NO_DMA platforms, thanks to the dummies, it does mean many of these drivers cannot work on such platforms. So I think it makes sense to replace "depends on HAS_DMA" by "depends on HAS_DMA || COMPILE_TEST" if DMA is not optional to the driver.
Hi Geert,
Is this what you had in mind? It seems to work with my (limited) testing.
Yes. And also for other symbols for drivers that now compile fine if !HAS_DMA, thanks to the dummies.
--- linux-next-20210907.orig/sound/soc/atmel/Kconfig +++ linux-next-20210907/sound/soc/atmel/Kconfig @@ -11,6 +11,7 @@ if SND_ATMEL_SOC
config SND_ATMEL_SOC_PDC bool
depends on HAS_DMA || COMPILE_TEST
config SND_ATMEL_SOC_DMA bool
Gr{oetje,eeting}s,
Geert