Hi Mauro,
On Sat, May 5, 2018 at 2:47 PM, Mauro Carvalho Chehab mchehab+samsung@kernel.org wrote:
Em Tue, 17 Apr 2018 19:49:12 +0200 Geert Uytterhoeven geert@linux-m68k.org escreveu:
Remove dependencies on HAS_DMA where a Kconfig symbol depends on another symbol that implies HAS_DMA, and, optionally, on "|| COMPILE_TEST".
Applying a patch like that is hard, as there are lots of churn at the code. That's against latest media upstream:
[...]
I can rebase. What's your preferred target? media-next?
In most cases this other symbol is an architecture or platform specific symbol, or PCI.
Generic symbols and drivers without platform dependencies keep their dependencies on HAS_DMA, to prevent compiling subsystems or drivers that cannot work anyway.
Actually, depends on HAS_DMA was introduced on media because builds were failing otherwise. We started adding it before the addition of COMPILE_TEST.
Indeed. Before the 5 commits below, a missing dependency on HAS_DMA would cause the build to fail for NO_DMA platforms.
f29ab49b5388b2f8 dma-mapping: Convert NO_DMA get_dma_ops() into a real dummy ab642e952f80c66c dma-coherent: Add NO_DMA dummies for managed DMA API c1ce6c2beea38171 mm: Add NO_DMA dummies for DMA pool API bff739b6559e2fce scsi: Add NO_DMA dummies for SCSI DMA mapping API 1f674e16f9ce6eb2 usb: gadget: Add NO_DMA dummies for DMA mapping API
Can we just remove all HAS_DMA Kconfig dependencies as a hole from the entire media subsystem, with something like:
$ for i in $(find drivers/media -name Kconfig) $(find drivers/staging/media -name Kconfig); do sed '/depends on HAS_DMA/d;s/ && HAS_DMA//g' -i $i; done
Or would it cause build issues?
It should not cause build issues, but it would enable lots of drivers that need DMA platform support on platforms where they wouldn't work, making the life of distro configurators harder.
That's why my series removes HAS_DMA only for symbols that have a platform dependency.
Thanks!
Gr{oetje,eeting}s,
Geert