Skip to contentSkip to conversation

SOUND: Fix non-ISA_DMA_API build failure

PATCH In review Ralf Baechle 4 participants 10 messages Jun 23, 2011 – Jun 24, 2011

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 SOUND: Fix non-ISA_DMA_API build failure

A build with ISA && ISA_DMA && !ISA_DMA_API results in:

CC sound/isa/es18xx.o
sound/isa/es18xx.c: In function ‘snd_es18xx_playback1_prepare’:
sound/isa/es18xx.c:501:9: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/es18xx.c: In function ‘snd_es18xx_playback_pointer’:
sound/isa/es18xx.c:818:3: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[2]: *** [sound/isa/es18xx.o] Error 1
CC sound/isa/sscape.o
sound/isa/sscape.c: In function ‘upload_dma_data’:
sound/isa/sscape.c:481:3: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[2]: *** [sound/isa/sscape.o] Error 1
CC sound/isa/ad1816a/ad1816a_lib.o
sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_playback_prepare’:
sound/isa/ad1816a/ad1816a_lib.c:244:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_playback_pointer’:
sound/isa/ad1816a/ad1816a_lib.c:302:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration] sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_free’:
sound/isa/ad1816a/ad1816a_lib.c:544:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/ad1816a/ad1816a_lib.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/ad1816a] Error 2
CC sound/isa/es1688/es1688_lib.o
sound/isa/es1688/es1688_lib.c: In function ‘snd_es1688_playback_prepare’:
sound/isa/es1688/es1688_lib.c:417:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/es1688/es1688_lib.c: In function ‘snd_es1688_playback_pointer’:
sound/isa/es1688/es1688_lib.c:509:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/es1688/es1688_lib.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/es1688] Error 2
CC sound/isa/gus/gus_dma.o
sound/isa/gus/gus_dma.c: In function ‘snd_gf1_dma_program’:
sound/isa/gus/gus_dma.c:79:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/gus/gus_dma.c: In function ‘snd_gf1_dma_done’:
sound/isa/gus/gus_dma.c:177:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/gus/gus_dma.o] Error 1
CC sound/isa/gus/gus_pcm.o
sound/isa/gus/gus_pcm.c: In function ‘snd_gf1_pcm_capture_prepare’:
sound/isa/gus/gus_pcm.c:591:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/gus/gus_pcm.c: In function ‘snd_gf1_pcm_capture_pointer’:
sound/isa/gus/gus_pcm.c:619:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/gus/gus_pcm.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/gus] Error 2
CC sound/isa/sb/sb16_csp.o
sound/isa/sb/sb16_csp.c: In function ‘snd_sb_csp_ioctl’:
sound/isa/sb/sb16_csp.c:228:227: error: case label does not reduce to an integer constant
make[3]: *** [sound/isa/sb/sb16_csp.o] Error 1
CC sound/isa/sb/sb16_main.o
sound/isa/sb/sb16_main.c: In function ‘snd_sb16_playback_prepare’:
sound/isa/sb/sb16_main.c:276:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/sb/sb16_main.c: In function ‘snd_sb16_playback_pointer’:
sound/isa/sb/sb16_main.c:456:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/sb/sb16_main.o] Error 1
CC sound/isa/sb/sb8_main.o
sound/isa/sb/sb8_main.c: In function ‘snd_sb8_playback_prepare’:
sound/isa/sb/sb8_main.c:172:3: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/sb/sb8_main.c: In function ‘snd_sb8_playback_pointer’:
sound/isa/sb/sb8_main.c:425:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/sb/sb8_main.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/sb] Error 2
CC sound/isa/wss/wss_lib.o
sound/isa/wss/wss_lib.c: In function ‘snd_wss_playback_prepare’:
sound/isa/wss/wss_lib.c:1025:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/wss/wss_lib.c: In function ‘snd_wss_playback_pointer’:
sound/isa/wss/wss_lib.c:1160:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration] sound/isa/wss/wss_lib.c: In function ‘snd_wss_free’:
sound/isa/wss/wss_lib.c:1695:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/wss/wss_lib.o] Error 1

Disabling these in Kconfig by adding a dependency on ISA_DMA_API then results in:

warning: (RADIO_MIROPCM20) selects SND_ISA which has unmet direct dependencies (SOUND && !M68K && SND && ISA && ISA_DMA_API)
warning: (RADIO_MIROPCM20) selects SND_MIRO which has unmet direct dependencies (SOUND && !M68K && SND && SND_ISA && ISA_DMA_API) #
[...]
LD .tmp_vmlinux1
sound/built-in.o: In function `snd_miro_probe':
/home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1321: undefined reference to snd_wss_create' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1327: undefined reference to snd_wss_pcm' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1331: undefined reference to snd_wss_mixer' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1335: undefined reference to snd_wss_timer' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1391: undefined reference to `snd_opl4_create'
make: *** [.tmp_vmlinux1] Error 1

Which makes also touching drivers/media/radio/Kconfig necessary.

Fixed by adding an explicit dependency on ISA_DMA_API for all of the config statment that either result in the direction inclusion of code that calls the ISA DMA API or selects something which in turn would use the ISA DMA API.

The sole ISA sound driver that does not use the ISA DMA API is the Adlib driver so replaced the dependency of SND_ISA on ISA_DMA_API and add it to each of the drivers individually.

---
With this (and a separate MIPS-specific patch) I can get all audio drivers in allyesconfig to build.

The generated i386/x86_64 allyesconfigs remain unchanged by this patch.

 drivers/media/radio/Kconfig |    2 +-
 sound/isa/Kconfig           |   40 ++++++++++++++++++++++++++++++----------
 2 files changed, 31 insertions(+), 11 deletions(-)
drivers/media/radio/Kconfig +1 -1
index e4c97fd..0aeed28 100644
@@ -168,7 +168,7 @@ config RADIO_MAXIRADIO
 
 config RADIO_MIROPCM20
 	tristate "miroSOUND PCM20 radio"
-	depends on ISA && VIDEO_V4L2 && SND
+	depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
 	select SND_ISA
 	select SND_MIRO
 	---help---
sound/isa/Kconfig +30 -10
index 52064cf..25230c8 100644
@@ -19,7 +19,7 @@ config SND_SB16_DSP
 
 menuconfig SND_ISA
 	bool "ISA sound devices"
-	depends on ISA && ISA_DMA_API
+	depends on ISA
 	default y
 	help
 	  Support for sound devices connected via the ISA bus.
@@ -37,7 +37,7 @@ config SND_ADLIB
 
 config SND_AD1816A
 	tristate "Analog Devices SoundPort AD1816A"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -52,6 +52,7 @@ config SND_AD1816A
 config SND_AD1848
 	tristate "Generic AD1848/CS4248 driver"
 	select SND_WSS_LIB
+	depends on ISA_DMA_API
 	help
 	  Say Y here to include support for AD1848 (Analog Devices) or
 	  CS4248 (Cirrus Logic - Crystal Semiconductors) chips.
@@ -64,7 +65,7 @@ config SND_AD1848
 
 config SND_ALS100
 	tristate "Diamond Tech. DT-019x and Avance Logic ALSxxx"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -79,7 +80,7 @@ config SND_ALS100
 
 config SND_AZT1605
 	tristate "Aztech AZT1605 Driver"
-	depends on SND
+	depends on ISA_DMA_API && SND
 	select SND_WSS_LIB
 	select SND_MPU401_UART
 	select SND_OPL3_LIB
@@ -92,7 +93,7 @@ config SND_AZT1605
 
 config SND_AZT2316
 	tristate "Aztech AZT2316 Driver"
-	depends on SND
+	depends on ISA_DMA_API && SND
 	select SND_WSS_LIB
 	select SND_MPU401_UART
 	select SND_OPL3_LIB
@@ -105,7 +106,7 @@ config SND_AZT2316
 
 config SND_AZT2320
 	tristate "Aztech Systems AZT2320"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -119,6 +120,7 @@ config SND_AZT2320
 
 config SND_CMI8330
 	tristate "C-Media CMI8330"
+	depends on ISA_DMA_API
 	select SND_WSS_LIB
 	select SND_SB16_DSP
 	select SND_OPL3_LIB
@@ -132,6 +134,7 @@ config SND_CMI8330
 
 config SND_CS4231
 	tristate "Generic Cirrus Logic CS4231 driver"
+	depends on ISA_DMA_API
 	select SND_MPU401_UART
 	select SND_WSS_LIB
 	help
@@ -143,6 +146,7 @@ config SND_CS4231
 
 config SND_CS4236
 	tristate "Generic Cirrus Logic CS4232/CS4236+ driver"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_WSS_LIB
@@ -156,6 +160,7 @@ config SND_CS4236
 
 config SND_ES1688
 	tristate "Generic ESS ES688/ES1688 and ES968 PnP driver"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_PCM
@@ -168,6 +173,7 @@ config SND_ES1688
 
 config SND_ES18XX
 	tristate "Generic ESS ES18xx driver"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_PCM
@@ -179,7 +185,7 @@ config SND_ES18XX
 
 config SND_SC6000
 	tristate "Gallant SC-6000/6600/7000 and Audio Excel DSP 16"
-	depends on HAS_IOPORT
+	depends on ISA_DMA_API && HAS_IOPORT
 	select SND_WSS_LIB
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -195,6 +201,7 @@ config SND_SC6000
 
 config SND_GUSCLASSIC
 	tristate "Gravis UltraSound Classic"
+	depends on ISA_DMA_API
 	select SND_RAWMIDI
 	select SND_PCM
 	help
@@ -206,6 +213,7 @@ config SND_GUSCLASSIC
 
 config SND_GUSEXTREME
 	tristate "Gravis UltraSound Extreme"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_PCM
@@ -218,6 +226,7 @@ config SND_GUSEXTREME
 
 config SND_GUSMAX
 	tristate "Gravis UltraSound MAX"
+	depends on ISA_DMA_API
 	select SND_RAWMIDI
 	select SND_WSS_LIB
 	help
@@ -229,7 +238,7 @@ config SND_GUSMAX
 
 config SND_INTERWAVE
 	tristate "AMD InterWave, Gravis UltraSound PnP"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select SND_RAWMIDI
 	select SND_WSS_LIB
 	help
@@ -242,7 +251,7 @@ config SND_INTERWAVE
 
 config SND_INTERWAVE_STB
 	tristate "AMD InterWave + TEA6330T (UltraSound 32-Pro)"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select SND_RAWMIDI
 	select SND_WSS_LIB
 	help
@@ -255,6 +264,7 @@ config SND_INTERWAVE_STB
 
 config SND_JAZZ16
 	tristate "Media Vision Jazz16 card and compatibles"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_SB8_DSP
@@ -271,6 +281,7 @@ config SND_JAZZ16
 
 config SND_OPL3SA2
 	tristate "Yamaha OPL3-SA2/SA3"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_WSS_LIB
@@ -283,6 +294,7 @@ config SND_OPL3SA2
 
 config SND_OPTI92X_AD1848
 	tristate "OPTi 82C92x - AD1848"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_OPL4_LIB
 	select SND_MPU401_UART
@@ -296,6 +308,7 @@ config SND_OPTI92X_AD1848
 
 config SND_OPTI92X_CS4231
 	tristate "OPTi 82C92x - CS4231"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_OPL4_LIB
 	select SND_MPU401_UART
@@ -309,6 +322,7 @@ config SND_OPTI92X_CS4231
 
 config SND_OPTI93X
 	tristate "OPTi 82C93x"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_WSS_LIB
@@ -321,6 +335,7 @@ config SND_OPTI93X
 
 config SND_MIRO
 	tristate "Miro miroSOUND PCM1pro/PCM12/PCM20radio driver"
+	depends on ISA_DMA_API
 	select SND_OPL4_LIB
 	select SND_WSS_LIB
 	select SND_MPU401_UART
@@ -334,6 +349,7 @@ config SND_MIRO
 
 config SND_SB8
 	tristate "Sound Blaster 1.0/2.0/Pro (8-bit)"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_RAWMIDI
 	select SND_SB8_DSP
@@ -346,6 +362,7 @@ config SND_SB8
 
 config SND_SB16
 	tristate "Sound Blaster 16 (PnP)"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_SB16_DSP
@@ -358,6 +375,7 @@ config SND_SB16
 
 config SND_SBAWE
 	tristate "Sound Blaster AWE (32,64) (PnP)"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_SB16_DSP
@@ -370,7 +388,7 @@ config SND_SBAWE
 
 config SND_SB16_CSP
 	bool "Sound Blaster 16/AWE CSP support"
-	depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
+	depends on ISA_DMA_API && (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
 	select FW_LOADER
 	help
 	  Say Y here to include support for the CSP core.  This special
@@ -379,6 +397,7 @@ config SND_SB16_CSP
 
 config SND_SSCAPE
 	tristate "Ensoniq SoundScape driver"
+	depends on ISA_DMA_API
 	select SND_MPU401_UART
 	select SND_WSS_LIB
 	select FW_LOADER
@@ -400,6 +419,7 @@ config SND_SSCAPE
 
 config SND_WAVEFRONT
 	tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
+	depends on ISA_DMA_API
 	select FW_LOADER
 	select SND_OPL3_LIB
 	select SND_MPU401_UART

_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

#1 lore raw

At Thu, 23 Jun 2011 15:47:50 +0100,

Quoted 117 lines · Ralf Baechle

A build with ISA && ISA_DMA && !ISA_DMA_API results in:

CC sound/isa/es18xx.o
sound/isa/es18xx.c: In function ‘snd_es18xx_playback1_prepare’:
sound/isa/es18xx.c:501:9: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/es18xx.c: In function ‘snd_es18xx_playback_pointer’:
sound/isa/es18xx.c:818:3: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[2]: *** [sound/isa/es18xx.o] Error 1
CC sound/isa/sscape.o
sound/isa/sscape.c: In function ‘upload_dma_data’:
sound/isa/sscape.c:481:3: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[2]: *** [sound/isa/sscape.o] Error 1
CC sound/isa/ad1816a/ad1816a_lib.o
sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_playback_prepare’:
sound/isa/ad1816a/ad1816a_lib.c:244:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_playback_pointer’:
sound/isa/ad1816a/ad1816a_lib.c:302:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration] sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_free’:
sound/isa/ad1816a/ad1816a_lib.c:544:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/ad1816a/ad1816a_lib.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/ad1816a] Error 2
CC sound/isa/es1688/es1688_lib.o
sound/isa/es1688/es1688_lib.c: In function ‘snd_es1688_playback_prepare’:
sound/isa/es1688/es1688_lib.c:417:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/es1688/es1688_lib.c: In function ‘snd_es1688_playback_pointer’:
sound/isa/es1688/es1688_lib.c:509:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/es1688/es1688_lib.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/es1688] Error 2
CC sound/isa/gus/gus_dma.o
sound/isa/gus/gus_dma.c: In function ‘snd_gf1_dma_program’:
sound/isa/gus/gus_dma.c:79:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/gus/gus_dma.c: In function ‘snd_gf1_dma_done’:
sound/isa/gus/gus_dma.c:177:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/gus/gus_dma.o] Error 1
CC sound/isa/gus/gus_pcm.o
sound/isa/gus/gus_pcm.c: In function ‘snd_gf1_pcm_capture_prepare’:
sound/isa/gus/gus_pcm.c:591:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/gus/gus_pcm.c: In function ‘snd_gf1_pcm_capture_pointer’:
sound/isa/gus/gus_pcm.c:619:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/gus/gus_pcm.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/gus] Error 2
CC sound/isa/sb/sb16_csp.o
sound/isa/sb/sb16_csp.c: In function ‘snd_sb_csp_ioctl’:
sound/isa/sb/sb16_csp.c:228:227: error: case label does not reduce to an integer constant
make[3]: *** [sound/isa/sb/sb16_csp.o] Error 1
CC sound/isa/sb/sb16_main.o
sound/isa/sb/sb16_main.c: In function ‘snd_sb16_playback_prepare’:
sound/isa/sb/sb16_main.c:276:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/sb/sb16_main.c: In function ‘snd_sb16_playback_pointer’:
sound/isa/sb/sb16_main.c:456:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/sb/sb16_main.o] Error 1
CC sound/isa/sb/sb8_main.o
sound/isa/sb/sb8_main.c: In function ‘snd_sb8_playback_prepare’:
sound/isa/sb/sb8_main.c:172:3: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/sb/sb8_main.c: In function ‘snd_sb8_playback_pointer’:
sound/isa/sb/sb8_main.c:425:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/sb/sb8_main.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [sound/isa/sb] Error 2
CC sound/isa/wss/wss_lib.o
sound/isa/wss/wss_lib.c: In function ‘snd_wss_playback_prepare’:
sound/isa/wss/wss_lib.c:1025:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration] sound/isa/wss/wss_lib.c: In function ‘snd_wss_playback_pointer’:
sound/isa/wss/wss_lib.c:1160:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration] sound/isa/wss/wss_lib.c: In function ‘snd_wss_free’:
sound/isa/wss/wss_lib.c:1695:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

make[3]: *** [sound/isa/wss/wss_lib.o] Error 1

Disabling these in Kconfig by adding a dependency on ISA_DMA_API then results in:

warning: (RADIO_MIROPCM20) selects SND_ISA which has unmet direct dependencies (SOUND && !M68K && SND && ISA && ISA_DMA_API)
warning: (RADIO_MIROPCM20) selects SND_MIRO which has unmet direct dependencies (SOUND && !M68K && SND && SND_ISA && ISA_DMA_API) #
[...]
LD .tmp_vmlinux1
sound/built-in.o: In function `snd_miro_probe':
/home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1321: undefined reference to snd_wss_create' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1327: undefined reference to snd_wss_pcm' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1331: undefined reference to snd_wss_mixer' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1335: undefined reference to snd_wss_timer' /home/ralf/src/linux/linux-mips/sound/isa/opti9xx/miro.c:1391: undefined reference to `snd_opl4_create'
make: *** [.tmp_vmlinux1] Error 1

Which makes also touching drivers/media/radio/Kconfig necessary.

Fixed by adding an explicit dependency on ISA_DMA_API for all of the config statment that either result in the direction inclusion of code that calls the ISA DMA API or selects something which in turn would use the ISA DMA API.

The sole ISA sound driver that does not use the ISA DMA API is the Adlib driver so replaced the dependency of SND_ISA on ISA_DMA_API and add it to each of the drivers individually.

Quoted 7 lines

---
With this (and a separate MIPS-specific patch) I can get all audio drivers in allyesconfig to build.

The generated i386/x86_64 allyesconfigs remain unchanged by this patch.

Hrm... I still don't understand why ES18XX or others were selected at the first place. Isn't it covered by the conditional in sound/isa/Kconfig like below?

================================================================
menuconfig SND_ISA

	bool "ISA sound devices"
	depends on ISA && ISA_DMA_API

...
if SND_ISA
...
config SND_ES18XX
tristate "Generic ESS ES18xx driver"
...
endif # SND_ISA
================================================================

Isn't SND_ISA=n in your case although ISA_DMA_API=n?

Also, adlib driver is really only for ISA, so I see no big reason to allow this built for non-ISA.

thanks,

Takashi

Quoted 273 lines
 drivers/media/radio/Kconfig |    2 +-
 sound/isa/Kconfig           |   40 ++++++++++++++++++++++++++++++----------
 2 files changed, 31 insertions(+), 11 deletions(-)
drivers/media/radio/Kconfig +1 -1
index e4c97fd..0aeed28 100644
@@ -168,7 +168,7 @@ config RADIO_MAXIRADIO
 
 config RADIO_MIROPCM20
 	tristate "miroSOUND PCM20 radio"
-	depends on ISA && VIDEO_V4L2 && SND
+	depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
 	select SND_ISA
 	select SND_MIRO
 	---help---
sound/isa/Kconfig +30 -10
index 52064cf..25230c8 100644
@@ -19,7 +19,7 @@ config SND_SB16_DSP
 
 menuconfig SND_ISA
 	bool "ISA sound devices"
-	depends on ISA && ISA_DMA_API
+	depends on ISA
 	default y
 	help
 	  Support for sound devices connected via the ISA bus.
@@ -37,7 +37,7 @@ config SND_ADLIB
 
 config SND_AD1816A
 	tristate "Analog Devices SoundPort AD1816A"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -52,6 +52,7 @@ config SND_AD1816A
 config SND_AD1848
 	tristate "Generic AD1848/CS4248 driver"
 	select SND_WSS_LIB
+	depends on ISA_DMA_API
 	help
 	  Say Y here to include support for AD1848 (Analog Devices) or
 	  CS4248 (Cirrus Logic - Crystal Semiconductors) chips.
@@ -64,7 +65,7 @@ config SND_AD1848
 
 config SND_ALS100
 	tristate "Diamond Tech. DT-019x and Avance Logic ALSxxx"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -79,7 +80,7 @@ config SND_ALS100
 
 config SND_AZT1605
 	tristate "Aztech AZT1605 Driver"
-	depends on SND
+	depends on ISA_DMA_API && SND
 	select SND_WSS_LIB
 	select SND_MPU401_UART
 	select SND_OPL3_LIB
@@ -92,7 +93,7 @@ config SND_AZT1605
 
 config SND_AZT2316
 	tristate "Aztech AZT2316 Driver"
-	depends on SND
+	depends on ISA_DMA_API && SND
 	select SND_WSS_LIB
 	select SND_MPU401_UART
 	select SND_OPL3_LIB
@@ -105,7 +106,7 @@ config SND_AZT2316
 
 config SND_AZT2320
 	tristate "Aztech Systems AZT2320"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -119,6 +120,7 @@ config SND_AZT2320
 
 config SND_CMI8330
 	tristate "C-Media CMI8330"
+	depends on ISA_DMA_API
 	select SND_WSS_LIB
 	select SND_SB16_DSP
 	select SND_OPL3_LIB
@@ -132,6 +134,7 @@ config SND_CMI8330
 
 config SND_CS4231
 	tristate "Generic Cirrus Logic CS4231 driver"
+	depends on ISA_DMA_API
 	select SND_MPU401_UART
 	select SND_WSS_LIB
 	help
@@ -143,6 +146,7 @@ config SND_CS4231
 
 config SND_CS4236
 	tristate "Generic Cirrus Logic CS4232/CS4236+ driver"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_WSS_LIB
@@ -156,6 +160,7 @@ config SND_CS4236
 
 config SND_ES1688
 	tristate "Generic ESS ES688/ES1688 and ES968 PnP driver"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_PCM
@@ -168,6 +173,7 @@ config SND_ES1688
 
 config SND_ES18XX
 	tristate "Generic ESS ES18xx driver"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_PCM
@@ -179,7 +185,7 @@ config SND_ES18XX
 
 config SND_SC6000
 	tristate "Gallant SC-6000/6600/7000 and Audio Excel DSP 16"
-	depends on HAS_IOPORT
+	depends on ISA_DMA_API && HAS_IOPORT
 	select SND_WSS_LIB
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -195,6 +201,7 @@ config SND_SC6000
 
 config SND_GUSCLASSIC
 	tristate "Gravis UltraSound Classic"
+	depends on ISA_DMA_API
 	select SND_RAWMIDI
 	select SND_PCM
 	help
@@ -206,6 +213,7 @@ config SND_GUSCLASSIC
 
 config SND_GUSEXTREME
 	tristate "Gravis UltraSound Extreme"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_PCM
@@ -218,6 +226,7 @@ config SND_GUSEXTREME
 
 config SND_GUSMAX
 	tristate "Gravis UltraSound MAX"
+	depends on ISA_DMA_API
 	select SND_RAWMIDI
 	select SND_WSS_LIB
 	help
@@ -229,7 +238,7 @@ config SND_GUSMAX
 
 config SND_INTERWAVE
 	tristate "AMD InterWave, Gravis UltraSound PnP"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select SND_RAWMIDI
 	select SND_WSS_LIB
 	help
@@ -242,7 +251,7 @@ config SND_INTERWAVE
 
 config SND_INTERWAVE_STB
 	tristate "AMD InterWave + TEA6330T (UltraSound 32-Pro)"
-	depends on PNP
+	depends on ISA_DMA_API && PNP
 	select SND_RAWMIDI
 	select SND_WSS_LIB
 	help
@@ -255,6 +264,7 @@ config SND_INTERWAVE_STB
 
 config SND_JAZZ16
 	tristate "Media Vision Jazz16 card and compatibles"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_SB8_DSP
@@ -271,6 +281,7 @@ config SND_JAZZ16
 
 config SND_OPL3SA2
 	tristate "Yamaha OPL3-SA2/SA3"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_WSS_LIB
@@ -283,6 +294,7 @@ config SND_OPL3SA2
 
 config SND_OPTI92X_AD1848
 	tristate "OPTi 82C92x - AD1848"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_OPL4_LIB
 	select SND_MPU401_UART
@@ -296,6 +308,7 @@ config SND_OPTI92X_AD1848
 
 config SND_OPTI92X_CS4231
 	tristate "OPTi 82C92x - CS4231"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_OPL4_LIB
 	select SND_MPU401_UART
@@ -309,6 +322,7 @@ config SND_OPTI92X_CS4231
 
 config SND_OPTI93X
 	tristate "OPTi 82C93x"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_WSS_LIB
@@ -321,6 +335,7 @@ config SND_OPTI93X
 
 config SND_MIRO
 	tristate "Miro miroSOUND PCM1pro/PCM12/PCM20radio driver"
+	depends on ISA_DMA_API
 	select SND_OPL4_LIB
 	select SND_WSS_LIB
 	select SND_MPU401_UART
@@ -334,6 +349,7 @@ config SND_MIRO
 
 config SND_SB8
 	tristate "Sound Blaster 1.0/2.0/Pro (8-bit)"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_RAWMIDI
 	select SND_SB8_DSP
@@ -346,6 +362,7 @@ config SND_SB8
 
 config SND_SB16
 	tristate "Sound Blaster 16 (PnP)"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_SB16_DSP
@@ -358,6 +375,7 @@ config SND_SB16
 
 config SND_SBAWE
 	tristate "Sound Blaster AWE (32,64) (PnP)"
+	depends on ISA_DMA_API
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_SB16_DSP
@@ -370,7 +388,7 @@ config SND_SBAWE
 
 config SND_SB16_CSP
 	bool "Sound Blaster 16/AWE CSP support"
-	depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
+	depends on ISA_DMA_API && (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
 	select FW_LOADER
 	help
 	  Say Y here to include support for the CSP core.  This special
@@ -379,6 +397,7 @@ config SND_SB16_CSP
 
 config SND_SSCAPE
 	tristate "Ensoniq SoundScape driver"
+	depends on ISA_DMA_API
 	select SND_MPU401_UART
 	select SND_WSS_LIB
 	select FW_LOADER
@@ -400,6 +419,7 @@ config SND_SSCAPE
 
 config SND_WAVEFRONT
 	tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
+	depends on ISA_DMA_API
 	select FW_LOADER
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
#2 lore raw
Quoted 17 lines · Takashi Iwai

Hrm... I still don't understand why ES18XX or others were selected at the first place. Isn't it covered by the conditional in sound/isa/Kconfig like below?

================================================================
menuconfig SND_ISA

	bool "ISA sound devices"
	depends on ISA && ISA_DMA_API

...
if SND_ISA
...
config SND_ES18XX
tristate "Generic ESS ES18xx driver"
...
endif # SND_ISA
================================================================

Quoted 1 line

Isn't SND_ISA=n in your case although ISA_DMA_API=n?

The answer is hidden in this Kconfig warning:

warning: (RADIO_MIROPCM20) selects SND_ISA which has unmet direct dependencies (SOUND && !M68K && SND && ISA && ISA_DMA_API)

This is due to the following in drivers/media/radio/Kconfig:

config RADIO_MIROPCM20
tristate "miroSOUND PCM20 radio"
depends on ISA && VIDEO_V4L2 && SND
select SND_ISA
select SND_MIRO

So SND_ISA gets forced on even though the dependency on ISA_DMA_API is not fulfilled. That's solved by adding the dependency on ISA_DMA_API to RADIO_MIROPCM20.

Quoted 2 lines

Also, adlib driver is really only for ISA, so I see no big reason to allow this built for non-ISA.

With the patch applied:

[...]
menuconfig SND_ISA
bool "ISA sound devices"
depends on ISA
[...]

if SND_ISA

config SND_ADLIB
tristate "AdLib FM card"
select SND_OPL3_LIB
[...]

So the Adlib driver will still only be built with ISA enabled. The only thing that makes the Adlib driver different from all the others in the ifdef SND_ISA ... endif bracket is that it does not directly or indirectly use the ISA DMA API and that's in the end the reason why sound/isa/Kconfig needs to be changed.

I originally approach this a different way but now that I'm explaining the details I notice that it probably makes sense to split this patch into two:

o The drivers/media/radio/Kconfig part should be applied for 3.0 and maybe -stable.
o The sound/isa/Kconfig part is basically only fixing the dependency for the Adlib driver allowing it to be built on non-ISA_DMA_API system and is material for the next release after 3.0.

If you agree I'm going to repost the patch with aproprite log messages.

Ralf

#3 lore raw

Em 24-06-2011 08:16, Ralf Baechle escreveu:

Quoted 33 lines · Takashi Iwai
Quoted 18 lines

Hrm... I still don't understand why ES18XX or others were selected at the first place. Isn't it covered by the conditional in sound/isa/Kconfig like below?

================================================================
menuconfig SND_ISA

	bool "ISA sound devices"
	depends on ISA && ISA_DMA_API

...
if SND_ISA
...
config SND_ES18XX
tristate "Generic ESS ES18xx driver"
...
endif # SND_ISA
================================================================

Quoted 1 line

Isn't SND_ISA=n in your case although ISA_DMA_API=n?

The answer is hidden in this Kconfig warning:

warning: (RADIO_MIROPCM20) selects SND_ISA which has unmet direct dependencies (SOUND && !M68K && SND && ISA && ISA_DMA_API)

This is due to the following in drivers/media/radio/Kconfig:

config RADIO_MIROPCM20
tristate "miroSOUND PCM20 radio"
depends on ISA && VIDEO_V4L2 && SND
select SND_ISA
select SND_MIRO

Quoted 3 lines

So SND_ISA gets forced on even though the dependency on ISA_DMA_API is not fulfilled. That's solved by adding the dependency on ISA_DMA_API to RADIO_MIROPCM20.

Another option would be to convert the two above selects into depends on.

Cheers,
Mauro

#4 lore raw
Quoted 11 lines · Mauro Carvalho Chehab

Em 24-06-2011 08:16, Ralf Baechle escreveu:

Quoted 8 lines

tristate "miroSOUND PCM20 radio"
depends on ISA && VIDEO_V4L2 && SND
select SND_ISA
select SND_MIRO

So SND_ISA gets forced on even though the dependency on ISA_DMA_API is not fulfilled. That's solved by adding the dependency on ISA_DMA_API to RADIO_MIROPCM20.

Another option would be to convert the two above selects into depends on.

Depends has the disadvantage that users may have to enable unobvious options first before they are offered the one they are looking for and that's what a "depends SND_ISA" would cause in this case.

Ralf

#5 lore raw
In reply to Ralf Baechle

At Fri, 24 Jun 2011 12:16:08 +0100,

Quoted 34 lines · Ralf Baechle
Quoted 17 lines · Takashi Iwai

Hrm... I still don't understand why ES18XX or others were selected at the first place. Isn't it covered by the conditional in sound/isa/Kconfig like below?

================================================================
menuconfig SND_ISA

	bool "ISA sound devices"
	depends on ISA && ISA_DMA_API

...
if SND_ISA
...
config SND_ES18XX
tristate "Generic ESS ES18xx driver"
...
endif # SND_ISA
================================================================

Quoted 1 line

Isn't SND_ISA=n in your case although ISA_DMA_API=n?

The answer is hidden in this Kconfig warning:

warning: (RADIO_MIROPCM20) selects SND_ISA which has unmet direct dependencies (SOUND && !M68K && SND && ISA && ISA_DMA_API)

This is due to the following in drivers/media/radio/Kconfig:

config RADIO_MIROPCM20
tristate "miroSOUND PCM20 radio"
depends on ISA && VIDEO_V4L2 && SND
select SND_ISA
select SND_MIRO

Quoted 3 lines

So SND_ISA gets forced on even though the dependency on ISA_DMA_API is not fulfilled. That's solved by adding the dependency on ISA_DMA_API to RADIO_MIROPCM20.

Ah, yeah, I see now.

Quoted 24 lines
Quoted 2 lines

Also, adlib driver is really only for ISA, so I see no big reason to allow this built for non-ISA.

With the patch applied:

[...]
menuconfig SND_ISA
bool "ISA sound devices"
depends on ISA
[...]

if SND_ISA

config SND_ADLIB
tristate "AdLib FM card"
select SND_OPL3_LIB
[...]

So the Adlib driver will still only be built with ISA enabled. The only thing that makes the Adlib driver different from all the others in the ifdef SND_ISA ... endif bracket is that it does not directly or indirectly use the ISA DMA API and that's in the end the reason why sound/isa/Kconfig needs to be changed.

Quoted 5 lines

I originally approach this a different way but now that I'm explaining the details I notice that it probably makes sense to split this patch into two:

o The drivers/media/radio/Kconfig part should be applied for 3.0 and maybe -stable.

Yes, this will be good.

Quoted 3 lines

o The sound/isa/Kconfig part is basically only fixing the dependency for the Adlib driver allowing it to be built on non-ISA_DMA_API system and is material for the next release after 3.0.

Any serious reason that snd-adlib must be built even with ISA=n? As the device is really present only for ISA, it doesn't make much sense to build this even though the driver itself doesn't need ISA_DMA_API.

thanks,

Takashi

#6 lore raw
Quoted 4 lines · Takashi Iwai
Quoted 2 lines

o The drivers/media/radio/Kconfig part should be applied for 3.0 and maybe -stable.

Yes, this will be good.

I just tested that segment only and it works as expected. Will repost in a minute.

Quoted 5 lines
Quoted 3 lines

o The sound/isa/Kconfig part is basically only fixing the dependency for the Adlib driver allowing it to be built on non-ISA_DMA_API system and is material for the next release after 3.0.

Any serious reason that snd-adlib must be built even with ISA=n?

Definately not.

Quoted 3 lines

As the device is really present only for ISA, it doesn't make much sense to build this even though the driver itself doesn't need ISA_DMA_API.

I'm not aware of any systems that could use the Adlib in a ISA=n environment. That's why my patch left the dependency on ISA untouched.

Ralf

#7 lore raw

At Fri, 24 Jun 2011 14:08:18 +0100,

Quoted 10 lines · Ralf Baechle
Quoted 4 lines · Takashi Iwai
Quoted 2 lines

o The drivers/media/radio/Kconfig part should be applied for 3.0 and maybe -stable.

Yes, this will be good.

I just tested that segment only and it works as expected. Will repost in a minute.

Great, thanks.

Quoted 6 lines
Quoted 5 lines
Quoted 3 lines

o The sound/isa/Kconfig part is basically only fixing the dependency for the Adlib driver allowing it to be built on non-ISA_DMA_API system and is material for the next release after 3.0.

Any serious reason that snd-adlib must be built even with ISA=n?

Quoted 8 lines

Definately not.

Quoted 3 lines

As the device is really present only for ISA, it doesn't make much sense to build this even though the driver itself doesn't need ISA_DMA_API.

I'm not aware of any systems that could use the Adlib in a ISA=n environment. That's why my patch left the dependency on ISA untouched.

OK, but this would just make things complex, I'm afraid.

Practically the only user of snd-adlib is the old x86 with ISA support, which implies ISA_DMA_API=y, too. Thus I don't want to touch sound/isa/Kconfig just for snd-adlib being built for some funky Kconfig setup :)

thanks,

Takashi

#8 lore raw
In reply to Ralf Baechle
Quoted 8 lines · On Thursday 23 June 2011 16:47:50 Ralf Baechle wrote:

Fixed by adding an explicit dependency on ISA_DMA_API for all of the config statment that either result in the direction inclusion of code that calls the ISA DMA API or selects something which in turn would use the ISA DMA API.

The sole ISA sound driver that does not use the ISA DMA API is the Adlib driver so replaced the dependency of SND_ISA on ISA_DMA_API and add it to each of the drivers individually.

Do we really care all that much about the Adlib driver on platforms without ISA_DMA_API? Right now all of sound/isa/ is hidden behind ISA_DMA_API and I think that's acceptable

drivers/media/radio/Kconfig config RADIO_MAXIRADIO · line 174

Quoted 13 lines
drivers/media/radio/Kconfig +1 -1
index e4c97fd..0aeed28 100644
@@ -168,7 +168,7 @@ config RADIO_MAXIRADIO
 
 config RADIO_MIROPCM20
        tristate "miroSOUND PCM20 radio"
-       depends on ISA && VIDEO_V4L2 && SND
+       depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
        select SND_ISA
        select SND_MIRO
        ---help---

Then this hunk by itself would be enough to solve the compile errors, AFAICT.

Arnd

#9 lore raw
Quoted 7 lines · Arnd Bergmann
Quoted 3 lines

The sole ISA sound driver that does not use the ISA DMA API is the Adlib driver so replaced the dependency of SND_ISA on ISA_DMA_API and add it to each of the drivers individually.

Do we really care all that much about the Adlib driver on platforms without ISA_DMA_API? Right now all of sound/isa/ is hidden behind ISA_DMA_API and I think that's acceptable

When looking into this build error I started untangling the mess from the isa from the sounds end and found the media bits as the root cause after I finished the sound bits. I honestly don't care about the Adlib - until I plug an Adlib into one of my SGI Indigo² and that's unlikely to happen :)

Quoted 6 lines
Quoted 6 lines
drivers/media/radio/Kconfig +0 -0
index e4c97fd..0aeed28 100644
@@ -168,7 +168,7 @@ config RADIO_MAXIRADIO
 
Quoted 10 lines

drivers/media/radio/Kconfig config RADIO_MAXIRADIO · line 174

Quoted 7 lines
drivers/media/radio/Kconfig +1 -1
 config RADIO_MIROPCM20
        tristate "miroSOUND PCM20 radio"
-       depends on ISA && VIDEO_V4L2 && SND
+       depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
        select SND_ISA
        select SND_MIRO
        ---help---

Then this hunk by itself would be enough to solve the compile errors, AFAICT.

It is, I've tested that.

Ralf