diff options
Diffstat (limited to 'sound/isa/gus/interwave.c')
| -rw-r--r-- | sound/isa/gus/interwave.c | 84 |
1 files changed, 37 insertions, 47 deletions
diff --git a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c index c7b80e4730f..ad55e5cb8e9 100644 --- a/sound/isa/gus/interwave.c +++ b/sound/isa/gus/interwave.c @@ -27,7 +27,7 @@ #include <linux/isa.h> #include <linux/delay.h> #include <linux/pnp.h> -#include <linux/moduleparam.h> +#include <linux/module.h> #include <asm/dma.h> #include <sound/core.h> #include <sound/gus.h> @@ -55,9 +55,9 @@ MODULE_SUPPORTED_DEVICE("{{AMD,InterWave STB with TEA6330T}}"); static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ -static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_ISAPNP; /* Enable this card */ +static bool enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_ISAPNP; /* Enable this card */ #ifdef CONFIG_PNP -static int isapnp[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; +static bool isapnp[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; #endif static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x210,0x220,0x230,0x240,0x250,0x260 */ #ifdef SNDRV_STB @@ -207,9 +207,9 @@ static struct snd_i2c_bit_ops snd_interwave_i2c_bit_ops = { .getdata = snd_interwave_i2c_getdataline, }; -static int __devinit snd_interwave_detect_stb(struct snd_interwave *iwcard, - struct snd_gus_card * gus, int dev, - struct snd_i2c_bus **rbus) +static int snd_interwave_detect_stb(struct snd_interwave *iwcard, + struct snd_gus_card *gus, int dev, + struct snd_i2c_bus **rbus) { unsigned long port; struct snd_i2c_bus *bus; @@ -249,11 +249,11 @@ static int __devinit snd_interwave_detect_stb(struct snd_interwave *iwcard, } #endif -static int __devinit snd_interwave_detect(struct snd_interwave *iwcard, - struct snd_gus_card * gus, - int dev +static int snd_interwave_detect(struct snd_interwave *iwcard, + struct snd_gus_card *gus, + int dev #ifdef SNDRV_STB - , struct snd_i2c_bus **rbus + , struct snd_i2c_bus **rbus #endif ) { @@ -318,7 +318,7 @@ static irqreturn_t snd_interwave_interrupt(int irq, void *dev_id) return IRQ_RETVAL(handled); } -static void __devinit snd_interwave_reset(struct snd_gus_card * gus) +static void snd_interwave_reset(struct snd_gus_card *gus) { snd_gf1_write8(gus, SNDRV_GF1_GB_RESET, 0x00); udelay(160); @@ -326,7 +326,7 @@ static void __devinit snd_interwave_reset(struct snd_gus_card * gus) udelay(160); } -static void __devinit snd_interwave_bank_sizes(struct snd_gus_card * gus, int *sizes) +static void snd_interwave_bank_sizes(struct snd_gus_card *gus, int *sizes) { unsigned int idx; unsigned int local; @@ -377,7 +377,7 @@ struct rom_hdr { /* 511 */ unsigned char csum; }; -static void __devinit snd_interwave_detect_memory(struct snd_gus_card * gus) +static void snd_interwave_detect_memory(struct snd_gus_card *gus) { static unsigned int lmc[13] = { @@ -442,19 +442,11 @@ static void __devinit snd_interwave_detect_memory(struct snd_gus_card * gus) for (bank_pos = 0; bank_pos < 16L * 1024L * 1024L; bank_pos += 4L * 1024L * 1024L) { for (i = 0; i < 8; ++i) iwave[i] = snd_gf1_peek(gus, bank_pos + i); -#ifdef CONFIG_SND_DEBUG_ROM - printk(KERN_DEBUG "ROM at 0x%06x = %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", bank_pos, - iwave[0], iwave[1], iwave[2], iwave[3], - iwave[4], iwave[5], iwave[6], iwave[7]); -#endif if (strncmp(iwave, "INTRWAVE", 8)) continue; /* first check */ csum = 0; for (i = 0; i < sizeof(struct rom_hdr); i++) csum += snd_gf1_peek(gus, bank_pos + i); -#ifdef CONFIG_SND_DEBUG_ROM - printk(KERN_DEBUG "ROM checksum = 0x%x (computed)\n", csum); -#endif if (csum != 0) continue; /* not valid rom */ gus->gf1.rom_banks++; @@ -476,7 +468,7 @@ static void __devinit snd_interwave_detect_memory(struct snd_gus_card * gus) snd_interwave_reset(gus); } -static void __devinit snd_interwave_init(int dev, struct snd_gus_card * gus) +static void snd_interwave_init(int dev, struct snd_gus_card *gus) { unsigned long flags; @@ -509,7 +501,7 @@ WSS_DOUBLE("Mic Playback Volume", 0, CS4231_LEFT_MIC_INPUT, CS4231_RIGHT_MIC_INPUT, 0, 0, 31, 1) }; -static int __devinit snd_interwave_mixer(struct snd_wss *chip) +static int snd_interwave_mixer(struct snd_wss *chip) { struct snd_card *card = chip->card; struct snd_ctl_elem_id id1, id2; @@ -559,9 +551,9 @@ static int __devinit snd_interwave_mixer(struct snd_wss *chip) #ifdef CONFIG_PNP -static int __devinit snd_interwave_pnp(int dev, struct snd_interwave *iwcard, - struct pnp_card_link *card, - const struct pnp_card_device_id *id) +static int snd_interwave_pnp(int dev, struct snd_interwave *iwcard, + struct pnp_card_link *card, + const struct pnp_card_device_id *id) { struct pnp_dev *pdev; int err; @@ -627,14 +619,15 @@ static void snd_interwave_free(struct snd_card *card) free_irq(iwcard->irq, (void *)iwcard); } -static int snd_interwave_card_new(int dev, struct snd_card **cardp) +static int snd_interwave_card_new(struct device *pdev, int dev, + struct snd_card **cardp) { struct snd_card *card; struct snd_interwave *iwcard; int err; - err = snd_card_create(index[dev], id[dev], THIS_MODULE, - sizeof(struct snd_interwave), &card); + err = snd_card_new(pdev, index[dev], id[dev], THIS_MODULE, + sizeof(struct snd_interwave), &card); if (err < 0) return err; iwcard = card->private_data; @@ -645,7 +638,7 @@ static int snd_interwave_card_new(int dev, struct snd_card **cardp) return 0; } -static int __devinit snd_interwave_probe(struct snd_card *card, int dev) +static int snd_interwave_probe(struct snd_card *card, int dev) { int xirq, xdma1, xdma2; struct snd_interwave *iwcard = card->private_data; @@ -684,7 +677,7 @@ static int __devinit snd_interwave_probe(struct snd_card *card, int dev) if ((err = snd_gus_initialize(gus)) < 0) return err; - if (request_irq(xirq, snd_interwave_interrupt, IRQF_DISABLED, + if (request_irq(xirq, snd_interwave_interrupt, 0, "InterWave", iwcard)) { snd_printk(KERN_ERR PFX "unable to grab IRQ %d\n", xirq); return -EBUSY; @@ -776,16 +769,15 @@ static int __devinit snd_interwave_probe(struct snd_card *card, int dev) return 0; } -static int __devinit snd_interwave_isa_probe1(int dev, struct device *devptr) +static int snd_interwave_isa_probe1(int dev, struct device *devptr) { struct snd_card *card; int err; - err = snd_interwave_card_new(dev, &card); + err = snd_interwave_card_new(devptr, dev, &card); if (err < 0) return err; - snd_card_set_dev(card, devptr); if ((err = snd_interwave_probe(card, dev)) < 0) { snd_card_free(card); return err; @@ -794,8 +786,8 @@ static int __devinit snd_interwave_isa_probe1(int dev, struct device *devptr) return 0; } -static int __devinit snd_interwave_isa_match(struct device *pdev, - unsigned int dev) +static int snd_interwave_isa_match(struct device *pdev, + unsigned int dev) { if (!enable[dev]) return 0; @@ -806,8 +798,8 @@ static int __devinit snd_interwave_isa_match(struct device *pdev, return 1; } -static int __devinit snd_interwave_isa_probe(struct device *pdev, - unsigned int dev) +static int snd_interwave_isa_probe(struct device *pdev, + unsigned int dev) { int err; static int possible_irqs[] = {5, 11, 12, 9, 7, 15, 3, -1}; @@ -847,17 +839,16 @@ static int __devinit snd_interwave_isa_probe(struct device *pdev, } } -static int __devexit snd_interwave_isa_remove(struct device *devptr, unsigned int dev) +static int snd_interwave_isa_remove(struct device *devptr, unsigned int dev) { snd_card_free(dev_get_drvdata(devptr)); - dev_set_drvdata(devptr, NULL); return 0; } static struct isa_driver snd_interwave_driver = { .match = snd_interwave_isa_match, .probe = snd_interwave_isa_probe, - .remove = __devexit_p(snd_interwave_isa_remove), + .remove = snd_interwave_isa_remove, /* FIXME: suspend,resume */ .driver = { .name = INTERWAVE_DRIVER @@ -865,8 +856,8 @@ static struct isa_driver snd_interwave_driver = { }; #ifdef CONFIG_PNP -static int __devinit snd_interwave_pnp_detect(struct pnp_card_link *pcard, - const struct pnp_card_device_id *pid) +static int snd_interwave_pnp_detect(struct pnp_card_link *pcard, + const struct pnp_card_device_id *pid) { static int dev; struct snd_card *card; @@ -879,7 +870,7 @@ static int __devinit snd_interwave_pnp_detect(struct pnp_card_link *pcard, if (dev >= SNDRV_CARDS) return -ENODEV; - res = snd_interwave_card_new(dev, &card); + res = snd_interwave_card_new(&pcard->card->dev, dev, &card); if (res < 0) return res; @@ -887,7 +878,6 @@ static int __devinit snd_interwave_pnp_detect(struct pnp_card_link *pcard, snd_card_free(card); return res; } - snd_card_set_dev(card, &pcard->card->dev); if ((res = snd_interwave_probe(card, dev)) < 0) { snd_card_free(card); return res; @@ -897,7 +887,7 @@ static int __devinit snd_interwave_pnp_detect(struct pnp_card_link *pcard, return 0; } -static void __devexit snd_interwave_pnp_remove(struct pnp_card_link * pcard) +static void snd_interwave_pnp_remove(struct pnp_card_link *pcard) { snd_card_free(pnp_get_card_drvdata(pcard)); pnp_set_card_drvdata(pcard, NULL); @@ -908,7 +898,7 @@ static struct pnp_card_driver interwave_pnpc_driver = { .name = INTERWAVE_PNP_DRIVER, .id_table = snd_interwave_pnpids, .probe = snd_interwave_pnp_detect, - .remove = __devexit_p(snd_interwave_pnp_remove), + .remove = snd_interwave_pnp_remove, /* FIXME: suspend,resume */ }; |
