Hi Randy,
On Sat, Sep 11, 2021 at 4:32 AM Randy Dunlap <rdunlap(a)infradead.org> wrote:
On 9/3/21 3:56 PM, kernel test robot wrote:
> First bad commit (maybe != root cause):
Any ideas about these build errors?
> tree:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 7cca308cfdc0725363ac5943dca9dcd49cc1d2d5
> commit: db87db65c1059f3be04506d122f8ec9b2fa3b05e m68knommu: only set
CONFIG_ISA_DMA_API for ColdFire sub-arch
> date: 12 days ago
> config: m68k-buildonly-randconfig-r001-20210904 (attached as .config)
> compiler: m68k-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
> wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
> chmod +x ~/bin/make.cross
> #
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
> git remote add linus
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout db87db65c1059f3be04506d122f8ec9b2fa3b05e
> # save the attached .config to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir
ARCH=m68k SHELL=/bin/bash sound/isa/es1688/ sound/isa/sb/ sound/isa/wss/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp(a)intel.com>
>
> All errors (new ones prefixed by >>):
>
> sound/isa/es1688/es1688_lib.c: In function
'snd_es1688_playback_prepare':
>>> sound/isa/es1688/es1688_lib.c:384:79: error: 'DMA_AUTOINIT'
undeclared (first use in this function)
> 384 | snd_dma_program(chip->dma8, runtime->dma_addr, size,
DMA_MODE_WRITE | DMA_AUTOINIT);
> |
^~~~~~~~~~~~
> sound/isa/es1688/es1688_lib.c:384:79: note: each undeclared identifier is
reported only once for each function it appears in
> sound/isa/es1688/es1688_lib.c: In function
'snd_es1688_capture_prepare':
> sound/isa/es1688/es1688_lib.c:441:78: error: 'DMA_AUTOINIT' undeclared
(first use in this function)
> 441 | snd_dma_program(chip->dma8, runtime->dma_addr, size,
DMA_MODE_READ | DMA_AUTOINIT);
> |
^~~~~~~~~~~~
> --
> sound/isa/sb/sb16_main.c: In function 'snd_sb16_playback_prepare':
>>> sound/isa/sb/sb16_main.c:253:72: error: 'DMA_AUTOINIT' undeclared
(first use in this function)
> 253 | snd_dma_program(dma, runtime->dma_addr, size, DMA_MODE_WRITE
| DMA_AUTOINIT);
> |
^~~~~~~~~~~~
> sound/isa/sb/sb16_main.c:253:72: note: each undeclared identifier is reported
only once for each function it appears in
> sound/isa/sb/sb16_main.c: In function 'snd_sb16_capture_prepare':
> sound/isa/sb/sb16_main.c:322:71: error: 'DMA_AUTOINIT' undeclared (first
use in this function)
> 322 | snd_dma_program(dma, runtime->dma_addr, size, DMA_MODE_READ |
DMA_AUTOINIT);
> |
^~~~~~~~~~~~
> --
> sound/isa/sb/sb8_main.c: In function 'snd_sb8_playback_prepare':
>>> sound/isa/sb/sb8_main.c:188:48: error: 'DMA_AUTOINIT' undeclared
(first use in this function)
> 188 | size, DMA_MODE_WRITE | DMA_AUTOINIT);
> | ^~~~~~~~~~~~
> sound/isa/sb/sb8_main.c:188:48: note: each undeclared identifier is reported
only once for each function it appears in
> sound/isa/sb/sb8_main.c: In function 'snd_sb8_capture_prepare':
> sound/isa/sb/sb8_main.c:313:47: error: 'DMA_AUTOINIT' undeclared (first
use in this function)
> 313 | size, DMA_MODE_READ | DMA_AUTOINIT);
> | ^~~~~~~~~~~~
> --
> sound/isa/wss/wss_lib.c: In function 'snd_wss_playback_prepare':
>>> sound/isa/wss/wss_lib.c:1004:79: error: 'DMA_AUTOINIT' undeclared
(first use in this function)
> 1004 | snd_dma_program(chip->dma1, runtime->dma_addr, size,
DMA_MODE_WRITE | DMA_AUTOINIT);
> |
^~~~~~~~~~~~
> sound/isa/wss/wss_lib.c:1004:79: note: each undeclared identifier is reported
only once for each function it appears in
> sound/isa/wss/wss_lib.c: In function 'snd_wss_capture_prepare':
> sound/isa/wss/wss_lib.c:1039:78: error: 'DMA_AUTOINIT' undeclared (first
use in this function)
> 1039 | snd_dma_program(chip->dma2, runtime->dma_addr, size,
DMA_MODE_READ | DMA_AUTOINIT);
> |
^~~~~~~~~~~~
Only a few arches define DMA_AUTOINIT:
$ grep -w DMA_AUTOINIT arch/*/include/asm/dma*.h
arch/alpha/include/asm/dma.h:#define DMA_AUTOINIT 0x10
arch/arm/include/asm/dma.h:#define DMA_AUTOINIT 0x10
arch/mips/include/asm/dma.h:#define DMA_AUTOINIT 0x10
arch/parisc/include/asm/dma.h:#define DMA_AUTOINIT 0x10
arch/powerpc/include/asm/dma.h:#define DMA_AUTOINIT 0x10
arch/sh/include/asm/dma.h:#define DMA_AUTOINIT 0x10
arch/x86/include/asm/dma.h:#define DMA_AUTOINIT 0x10
So only m68k and sparc lack them?
Of course their dma_set_mode() implementations just ignore that
mode (and many more, for the rudimentary sparc version).
CONFIG_ISA_DMA_API=y
but CONFIG_ISA is not set.
(Yes, this is ColdFire.)
menuconfig SND_ISA
bool "ISA sound devices"
depends on ISA || COMPILE_TEST
depends on ISA_DMA_API
default y
I suppose that we could drop the "|| COMPILE_TEST" part.
Or "... || (COMPILE_TEST && !M68K)"?
Sparc doesn't define ISA_DMA_API, so it doesn't suffer.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert(a)linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like
that.
-- Linus Torvalds