Subject: CONFIG_ISA_DMA_API without CONFIG_GENERIC_ISA_DMA

From: Scott Wood <[email-masked]>
Date: Thu, 25 Feb 2010 14:40:58 -0600

I tried building a kernel using mpc85xx_smp_defconfig, but with all 
platforms but p4080ds removed.  This was the result:

>   LD      .tmp_vmlinux1
> sound/built-in.o: In function `claim_dma_lock':
> /home/scott/git/fsl/linux/upstream/arch/powerpc/include/asm/dma.h:179: undefined reference to `dma_spin_lock'
> /home/scott/git/fsl/linux/upstream/arch/powerpc/include/asm/dma.h:179: undefined reference to `dma_spin_lock'
> /home/scott/git/fsl/linux/upstream/arch/powerpc/include/asm/dma.h:179: undefined reference to `dma_spin_lock'
> /home/scott/git/fsl/linux/upstream/arch/powerpc/include/asm/dma.h:179: undefined reference to `dma_spin_lock'
> /home/scott/git/fsl/linux/upstream/arch/powerpc/include/asm/dma.h:179: undefined reference to `dma_spin_lock'
> sound/built-in.o:/home/scott/git/fsl/linux/upstream/arch/powerpc/include/asm/dma.h:179: more undefined references to `dma_spin_lock' follow
> make: *** [.tmp_vmlinux1] Error 1

Commit fb4f0e8832e0075849b41b65f6bb9fdfa7593b99 (Enable GENERIC_ISA_DMA 
if FSL_ULI1575 to fix compile issue) tries to deal with this, but it 
ties it to CONFIG_FSL_ULI1575, which is not selected in a p4080ds-only 
config.

It seems that ULI isn't really relevant to the actual problem, which is 
that we enable ISA DMA API support without selecting an implementation. 
  Whether a certain chip is on the board that has an actual ISA 
interface is irrelevant to the build breakage.

Where did the dependency list for GENERIC_ISA_DMA come from?  Are there 
any legitimate cases on powerpc where we want to select ISA_DMA_API but 
not GENERIC_ISA_DMA (i.e. we have an alternate implementation)?

-Scott