Re: sound/isa/es1688/es1688_lib.c:384:79: error: 'DMA_AUTOINIT' undeclared
From: Geert Uytterhoeven
Date: Mon Sep 13 2021 - 03:55:06 EST
Hi Randy,
On Sat, Sep 11, 2021 at 4:32 AM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> 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/?id=db87db65c1059f3be04506d122f8ec9b2fa3b05e
> > 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@xxxxxxxxx>
> >
> > 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@xxxxxxxxxxxxxx
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