Pārlūkot izejas kodu

[ALSA] Enable Kconfig options for external firmwares

Some drivers are already ifdefs for enabling external firmwares
but not defined in Kconfig.  Now they appear as the kernel configs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Takashi Iwai 18 gadi atpakaļ
vecāks
revīzija
8ad2da1937

+ 20 - 2
sound/isa/Kconfig

@@ -358,12 +358,21 @@ config SND_SBAWE
 config SND_SB16_CSP
 config SND_SB16_CSP
 	bool "Sound Blaster 16/AWE CSP support"
 	bool "Sound Blaster 16/AWE CSP support"
 	depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
 	depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
-	select FW_LOADER
 	help
 	help
 	  Say Y here to include support for the CSP core.  This special
 	  Say Y here to include support for the CSP core.  This special
 	  coprocessor can do variable tasks like various compression and
 	  coprocessor can do variable tasks like various compression and
 	  decompression algorithms.
 	  decompression algorithms.
 
 
+config SND_SB16_CSP_FIRMWARE_IN_KERNEL
+	bool "In-kernel firmware for SB16 CSP"
+	depends on SND_SB16_CSP
+	select FW_LOADER
+	default y
+	help
+	  Say Y here to include the static firmware built in the kernel
+	  for SB16 CSP controller.  If you choose N here, the external
+	  firmware files from alsa-plugins pacakge are necessary.
+
 config SND_SGALAXY
 config SND_SGALAXY
 	tristate "Aztech Sound Galaxy"
 	tristate "Aztech Sound Galaxy"
 	depends on SND
 	depends on SND
@@ -391,7 +400,6 @@ config SND_SSCAPE
 config SND_WAVEFRONT
 config SND_WAVEFRONT
 	tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
 	tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
 	depends on SND
 	depends on SND
-	select FW_LOADER
 	select SND_OPL3_LIB
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_MPU401_UART
 	select SND_CS4231_LIB
 	select SND_CS4231_LIB
@@ -402,4 +410,14 @@ config SND_WAVEFRONT
 	  To compile this driver as a module, choose M here: the module
 	  To compile this driver as a module, choose M here: the module
 	  will be called snd-wavefront.
 	  will be called snd-wavefront.
 
 
+config SND_WAVEFRONT_FIRMWARE_IN_KERNEL
+	bool "In-kernel firmware for Wavefront"
+	depends on SND_WAVEFRONT
+	select FW_LOADER
+	default y
+	help
+	  Say Y here to include the static firmware built in the kernel
+	  for Wavefront driver.  If you choose N here, the external
+	  firmware files from alsa-plugins pacakge are necessary.
+
 endmenu
 endmenu

+ 2 - 4
sound/isa/sb/sb16_csp.c

@@ -690,9 +690,7 @@ static int snd_sb_csp_load_user(struct snd_sb_csp * p, const unsigned char __use
 	return err;
 	return err;
 }
 }
 
 
-#define FIRMWARE_IN_THE_KERNEL
-
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL
 #include "sb16_csp_codecs.h"
 #include "sb16_csp_codecs.h"
 
 
 static const struct firmware snd_sb_csp_static_programs[] = {
 static const struct firmware snd_sb_csp_static_programs[] = {
@@ -724,7 +722,7 @@ static int snd_sb_csp_firmware_load(struct snd_sb_csp *p, int index, int flags)
 		if (err >= 0)
 		if (err >= 0)
 			p->csp_programs[index] = program;
 			p->csp_programs[index] = program;
 		else {
 		else {
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL
 			program = &snd_sb_csp_static_programs[index];
 			program = &snd_sb_csp_static_programs[index];
 #else
 #else
 			return err;
 			return err;

+ 3 - 5
sound/isa/wavefront/wavefront_fx.c

@@ -35,9 +35,7 @@
 
 
 #define WAIT_IDLE	0xff
 #define WAIT_IDLE	0xff
 
 
-#define FIRMWARE_IN_THE_KERNEL
-
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL
 #include "yss225.c"
 #include "yss225.c"
 static const struct firmware yss225_registers_firmware = {
 static const struct firmware yss225_registers_firmware = {
 	.data = (u8 *)yss225_registers,
 	.data = (u8 *)yss225_registers,
@@ -266,7 +264,7 @@ snd_wavefront_fx_start (snd_wavefront_t *dev)
 	err = request_firmware(&firmware, "yamaha/yss225_registers.bin",
 	err = request_firmware(&firmware, "yamaha/yss225_registers.bin",
 			       dev->card->dev);
 			       dev->card->dev);
 	if (err < 0) {
 	if (err < 0) {
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL
 		firmware = &yss225_registers_firmware;
 		firmware = &yss225_registers_firmware;
 #else
 #else
 		err = -1;
 		err = -1;
@@ -295,7 +293,7 @@ snd_wavefront_fx_start (snd_wavefront_t *dev)
 	err = 0;
 	err = 0;
 
 
 out:
 out:
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL
 	if (firmware != &yss225_registers_firmware)
 	if (firmware != &yss225_registers_firmware)
 #endif
 #endif
 		release_firmware(firmware);
 		release_firmware(firmware);

+ 30 - 2
sound/pci/Kconfig

@@ -576,7 +576,6 @@ config SND_INTEL8X0M
 config SND_KORG1212
 config SND_KORG1212
 	tristate "Korg 1212 IO"
 	tristate "Korg 1212 IO"
 	depends on SND
 	depends on SND
-	select FW_LOADER
 	select SND_PCM
 	select SND_PCM
 	help
 	help
 	  Say Y here to include support for Korg 1212IO soundcards.
 	  Say Y here to include support for Korg 1212IO soundcards.
@@ -584,6 +583,16 @@ config SND_KORG1212
 	  To compile this driver as a module, choose M here: the module
 	  To compile this driver as a module, choose M here: the module
 	  will be called snd-korg1212.
 	  will be called snd-korg1212.
 
 
+config SND_KORG1212_FIRMWARE_IN_KERNEL
+	bool "In-kernel firmware for Korg1212 driver"
+	depends on SND_KORG1212
+	select FW_LOADER
+	default y
+	help
+	  Say Y here to include the static firmware built in the kernel
+	  for Korg1212 driver.  If you choose N here, the external
+	  firmware files from alsa-plugins pacakge are necessary.
+
 config SND_MAESTRO3
 config SND_MAESTRO3
 	tristate "ESS Allegro/Maestro3"
 	tristate "ESS Allegro/Maestro3"
 	depends on SND
 	depends on SND
@@ -596,6 +605,16 @@ config SND_MAESTRO3
 	  To compile this driver as a module, choose M here: the module
 	  To compile this driver as a module, choose M here: the module
 	  will be called snd-maestro3.
 	  will be called snd-maestro3.
 
 
+config SND_MAESTRO3_FIRMWARE_IN_KERNEL
+	bool "In-kernel firmware for Maestro3 driver"
+	depends on SND_MAESTRO3
+	select FW_LOADER
+	default y
+	help
+	  Say Y here to include the static firmware built in the kernel
+	  for Maestro3 driver.  If you choose N here, the external
+	  firmware files from alsa-plugins pacakge are necessary.
+
 config SND_MIXART
 config SND_MIXART
 	tristate "Digigram miXart"
 	tristate "Digigram miXart"
 	depends on SND
 	depends on SND
@@ -737,7 +756,6 @@ config SND_VX222
 config SND_YMFPCI
 config SND_YMFPCI
 	tristate "Yamaha YMF724/740/744/754"
 	tristate "Yamaha YMF724/740/744/754"
 	depends on SND
 	depends on SND
-	select FW_LOADER
 	select SND_OPL3_LIB
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_MPU401_UART
 	select SND_AC97_CODEC
 	select SND_AC97_CODEC
@@ -748,6 +766,16 @@ config SND_YMFPCI
 	  To compile this driver as a module, choose M here: the module
 	  To compile this driver as a module, choose M here: the module
 	  will be called snd-ymfpci.
 	  will be called snd-ymfpci.
 
 
+config SND_YMFPCI_FIRMWARE_IN_KERNEL
+	bool "In-kernel firmware for YMFPCI driver"
+	depends on SND_YMFPCI
+	select FW_LOADER
+	default y
+	help
+	  Say Y here to include the static firmware built in the kernel
+	  for YMFPCI driver.  If you choose N here, the external
+	  firmware files from alsa-plugins pacakge are necessary.
+
 config SND_AC97_POWER_SAVE
 config SND_AC97_POWER_SAVE
 	bool "AC97 Power-Saving Mode"
 	bool "AC97 Power-Saving Mode"
 	depends on SND_AC97_CODEC && EXPERIMENTAL
 	depends on SND_AC97_CODEC && EXPERIMENTAL

+ 4 - 6
sound/pci/korg1212/korg1212.c

@@ -264,9 +264,7 @@ enum MonitorModeSelector {
 #define COMMAND_ACK_DELAY   13         // number of RTC ticks to wait for an acknowledgement
 #define COMMAND_ACK_DELAY   13         // number of RTC ticks to wait for an acknowledgement
                                        //    from the card after sending a command.
                                        //    from the card after sending a command.
 
 
-#define FIRMWARE_IN_THE_KERNEL
-
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL
 #include "korg1212-firmware.h"
 #include "korg1212-firmware.h"
 static const struct firmware static_dsp_code = {
 static const struct firmware static_dsp_code = {
 	.data = (u8 *)dspCode,
 	.data = (u8 *)dspCode,
@@ -2345,7 +2343,7 @@ static int __devinit snd_korg1212_create(struct snd_card *card, struct pci_dev *
 	err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev);
 	err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev);
 	if (err < 0) {
 	if (err < 0) {
 		release_firmware(dsp_code);
 		release_firmware(dsp_code);
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL
 		dsp_code = &static_dsp_code;
 		dsp_code = &static_dsp_code;
 #else
 #else
 		snd_printk(KERN_ERR "firmware not available\n");
 		snd_printk(KERN_ERR "firmware not available\n");
@@ -2358,7 +2356,7 @@ static int __devinit snd_korg1212_create(struct snd_card *card, struct pci_dev *
 				dsp_code->size, &korg1212->dma_dsp) < 0) {
 				dsp_code->size, &korg1212->dma_dsp) < 0) {
 		snd_printk(KERN_ERR "korg1212: cannot allocate dsp code memory (%zd bytes)\n", dsp_code->size);
 		snd_printk(KERN_ERR "korg1212: cannot allocate dsp code memory (%zd bytes)\n", dsp_code->size);
                 snd_korg1212_free(korg1212);
                 snd_korg1212_free(korg1212);
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL
 		if (dsp_code != &static_dsp_code)
 		if (dsp_code != &static_dsp_code)
 #endif
 #endif
 			release_firmware(dsp_code);
 			release_firmware(dsp_code);
@@ -2371,7 +2369,7 @@ static int __devinit snd_korg1212_create(struct snd_card *card, struct pci_dev *
 
 
 	memcpy(korg1212->dma_dsp.area, dsp_code->data, dsp_code->size);
 	memcpy(korg1212->dma_dsp.area, dsp_code->data, dsp_code->size);
 
 
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL
 	if (dsp_code != &static_dsp_code)
 	if (dsp_code != &static_dsp_code)
 #endif
 #endif
 		release_firmware(dsp_code);
 		release_firmware(dsp_code);

+ 6 - 8
sound/pci/maestro3.c

@@ -2101,9 +2101,7 @@ static int __devinit snd_m3_mixer(struct snd_m3 *chip)
 }
 }
 
 
 
 
-#define FIRMWARE_IN_THE_KERNEL
-
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL
 
 
 /*
 /*
  * DSP Code images
  * DSP Code images
@@ -2242,7 +2240,7 @@ static const struct firmware assp_minisrc = {
 	.size = sizeof assp_minisrc_image
 	.size = sizeof assp_minisrc_image
 };
 };
 
 
-#endif /* FIRMWARE_IN_THE_KERNEL */
+#endif /* CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL */
 
 
 #ifdef __LITTLE_ENDIAN
 #ifdef __LITTLE_ENDIAN
 static inline void snd_m3_convert_from_le(const struct firmware *fw) { }
 static inline void snd_m3_convert_from_le(const struct firmware *fw) { }
@@ -2550,11 +2548,11 @@ static int snd_m3_free(struct snd_m3 *chip)
 	if (chip->iobase)
 	if (chip->iobase)
 		pci_release_regions(chip->pci);
 		pci_release_regions(chip->pci);
 
 
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL
 	if (chip->assp_kernel_image != &assp_kernel)
 	if (chip->assp_kernel_image != &assp_kernel)
 #endif
 #endif
 		release_firmware(chip->assp_kernel_image);
 		release_firmware(chip->assp_kernel_image);
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL
 	if (chip->assp_minisrc_image != &assp_minisrc)
 	if (chip->assp_minisrc_image != &assp_minisrc)
 #endif
 #endif
 		release_firmware(chip->assp_minisrc_image);
 		release_firmware(chip->assp_minisrc_image);
@@ -2750,7 +2748,7 @@ snd_m3_create(struct snd_card *card, struct pci_dev *pci,
 	err = request_firmware(&chip->assp_kernel_image,
 	err = request_firmware(&chip->assp_kernel_image,
 			       "ess/maestro3_assp_kernel.fw", &pci->dev);
 			       "ess/maestro3_assp_kernel.fw", &pci->dev);
 	if (err < 0) {
 	if (err < 0) {
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL
 		chip->assp_kernel_image = &assp_kernel;
 		chip->assp_kernel_image = &assp_kernel;
 #else
 #else
 		snd_m3_free(chip);
 		snd_m3_free(chip);
@@ -2762,7 +2760,7 @@ snd_m3_create(struct snd_card *card, struct pci_dev *pci,
 	err = request_firmware(&chip->assp_minisrc_image,
 	err = request_firmware(&chip->assp_minisrc_image,
 			       "ess/maestro3_assp_minisrc.fw", &pci->dev);
 			       "ess/maestro3_assp_minisrc.fw", &pci->dev);
 	if (err < 0) {
 	if (err < 0) {
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL
 		chip->assp_minisrc_image = &assp_minisrc;
 		chip->assp_minisrc_image = &assp_minisrc;
 #else
 #else
 		snd_m3_free(chip);
 		snd_m3_free(chip);

+ 5 - 7
sound/pci/ymfpci/ymfpci_main.c

@@ -1998,9 +1998,7 @@ static void snd_ymfpci_disable_dsp(struct snd_ymfpci *chip)
 	}
 	}
 }
 }
 
 
-#define FIRMWARE_IN_THE_KERNEL
-
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL
 
 
 #include "ymfpci_image.h"
 #include "ymfpci_image.h"
 
 
@@ -2047,7 +2045,7 @@ static int snd_ymfpci_request_firmware(struct snd_ymfpci *chip)
 		}
 		}
 	}
 	}
 	if (err < 0) {
 	if (err < 0) {
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL
 		chip->dsp_microcode = &snd_ymfpci_dsp_microcode;
 		chip->dsp_microcode = &snd_ymfpci_dsp_microcode;
 #else
 #else
 		return err;
 		return err;
@@ -2070,7 +2068,7 @@ static int snd_ymfpci_request_firmware(struct snd_ymfpci *chip)
 		}
 		}
 	}
 	}
 	if (err < 0) {
 	if (err < 0) {
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL
 		chip->controller_microcode =
 		chip->controller_microcode =
 			is_1e ? &snd_ymfpci_controller_1e_microcode
 			is_1e ? &snd_ymfpci_controller_1e_microcode
 			      : &snd_ymfpci_controller_microcode;
 			      : &snd_ymfpci_controller_microcode;
@@ -2259,11 +2257,11 @@ static int snd_ymfpci_free(struct snd_ymfpci *chip)
 	pci_write_config_word(chip->pci, 0x40, chip->old_legacy_ctrl);
 	pci_write_config_word(chip->pci, 0x40, chip->old_legacy_ctrl);
 	
 	
 	pci_disable_device(chip->pci);
 	pci_disable_device(chip->pci);
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL
 	if (chip->dsp_microcode != &snd_ymfpci_dsp_microcode)
 	if (chip->dsp_microcode != &snd_ymfpci_dsp_microcode)
 #endif
 #endif
 		release_firmware(chip->dsp_microcode);
 		release_firmware(chip->dsp_microcode);
-#ifdef FIRMWARE_IN_THE_KERNEL
+#ifdef CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL
 	if (chip->controller_microcode != &snd_ymfpci_controller_microcode &&
 	if (chip->controller_microcode != &snd_ymfpci_controller_microcode &&
 	    chip->controller_microcode != &snd_ymfpci_controller_1e_microcode)
 	    chip->controller_microcode != &snd_ymfpci_controller_1e_microcode)
 #endif
 #endif