diff options
Diffstat (limited to 'sound/isa/es18xx.c')
| -rw-r--r-- | sound/isa/es18xx.c | 120 |
1 files changed, 58 insertions, 62 deletions
diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c index fb4d6b34bbc..6faaac60161 100644 --- a/sound/isa/es18xx.c +++ b/sound/isa/es18xx.c @@ -82,7 +82,7 @@ #include <linux/isa.h> #include <linux/pnp.h> #include <linux/isapnp.h> -#include <linux/moduleparam.h> +#include <linux/module.h> #include <linux/delay.h> #include <asm/io.h> @@ -348,7 +348,7 @@ static inline int snd_es18xx_mixer_writable(struct snd_es18xx *chip, unsigned ch } -static int __devinit snd_es18xx_reset(struct snd_es18xx *chip) +static int snd_es18xx_reset(struct snd_es18xx *chip) { int i; outb(0x03, chip->port + 0x06); @@ -520,7 +520,7 @@ static int snd_es18xx_playback1_trigger(struct snd_es18xx *chip, snd_es18xx_mixer_write(chip, 0x78, 0x93); #ifdef AVOID_POPS /* Avoid pops */ - udelay(100000); + mdelay(100); if (chip->caps & ES18XX_PCM2) /* Restore Audio 2 volume */ snd_es18xx_mixer_write(chip, 0x7C, chip->audio2_vol); @@ -537,7 +537,7 @@ static int snd_es18xx_playback1_trigger(struct snd_es18xx *chip, /* Stop DMA */ snd_es18xx_mixer_write(chip, 0x78, 0x00); #ifdef AVOID_POPS - udelay(25000); + mdelay(25); if (chip->caps & ES18XX_PCM2) /* Set Audio 2 volume to 0 */ snd_es18xx_mixer_write(chip, 0x7C, 0); @@ -596,7 +596,7 @@ static int snd_es18xx_capture_prepare(struct snd_pcm_substream *substream) snd_es18xx_write(chip, 0xA5, count >> 8); #ifdef AVOID_POPS - udelay(100000); + mdelay(100); #endif /* Set format */ @@ -691,7 +691,7 @@ static int snd_es18xx_playback2_trigger(struct snd_es18xx *chip, snd_es18xx_write(chip, 0xB8, 0x05); #ifdef AVOID_POPS /* Avoid pops */ - udelay(100000); + mdelay(100); /* Enable Audio 1 */ snd_es18xx_dsp_command(chip, 0xD1); #endif @@ -705,7 +705,7 @@ static int snd_es18xx_playback2_trigger(struct snd_es18xx *chip, snd_es18xx_write(chip, 0xB8, 0x00); #ifdef AVOID_POPS /* Avoid pops */ - udelay(25000); + mdelay(25); /* Disable Audio 1 */ snd_es18xx_dsp_command(chip, 0xD3); #endif @@ -1363,7 +1363,7 @@ static struct snd_kcontrol_new snd_es18xx_hw_volume_controls[] = { ES18XX_SINGLE("Hardware Master Volume Split", 0, 0x64, 7, 1, 0), }; -static int __devinit snd_es18xx_config_read(struct snd_es18xx *chip, unsigned char reg) +static int snd_es18xx_config_read(struct snd_es18xx *chip, unsigned char reg) { int data; @@ -1372,8 +1372,8 @@ static int __devinit snd_es18xx_config_read(struct snd_es18xx *chip, unsigned ch return data; } -static void __devinit snd_es18xx_config_write(struct snd_es18xx *chip, - unsigned char reg, unsigned char data) +static void snd_es18xx_config_write(struct snd_es18xx *chip, + unsigned char reg, unsigned char data) { /* No need for spinlocks, this function is used only in otherwise protected init code */ @@ -1384,9 +1384,9 @@ static void __devinit snd_es18xx_config_write(struct snd_es18xx *chip, #endif } -static int __devinit snd_es18xx_initialize(struct snd_es18xx *chip, - unsigned long mpu_port, - unsigned long fm_port) +static int snd_es18xx_initialize(struct snd_es18xx *chip, + unsigned long mpu_port, + unsigned long fm_port) { int mask = 0; @@ -1549,7 +1549,7 @@ static int __devinit snd_es18xx_initialize(struct snd_es18xx *chip, return 0; } -static int __devinit snd_es18xx_identify(struct snd_es18xx *chip) +static int snd_es18xx_identify(struct snd_es18xx *chip) { int hi,lo; @@ -1618,9 +1618,9 @@ static int __devinit snd_es18xx_identify(struct snd_es18xx *chip) return 0; } -static int __devinit snd_es18xx_probe(struct snd_es18xx *chip, - unsigned long mpu_port, - unsigned long fm_port) +static int snd_es18xx_probe(struct snd_es18xx *chip, + unsigned long mpu_port, + unsigned long fm_port) { if (snd_es18xx_identify(chip) < 0) { snd_printk(KERN_ERR PFX "[0x%lx] ESS chip not found\n", chip->port); @@ -1680,8 +1680,8 @@ static struct snd_pcm_ops snd_es18xx_capture_ops = { .pointer = snd_es18xx_capture_pointer, }; -static int __devinit snd_es18xx_pcm(struct snd_card *card, int device, - struct snd_pcm **rpcm) +static int snd_es18xx_pcm(struct snd_card *card, int device, + struct snd_pcm **rpcm) { struct snd_es18xx *chip = card->private_data; struct snd_pcm *pcm; @@ -1777,11 +1777,11 @@ static int snd_es18xx_dev_free(struct snd_device *device) return snd_es18xx_free(device->card); } -static int __devinit snd_es18xx_new_device(struct snd_card *card, - unsigned long port, - unsigned long mpu_port, - unsigned long fm_port, - int irq, int dma1, int dma2) +static int snd_es18xx_new_device(struct snd_card *card, + unsigned long port, + unsigned long mpu_port, + unsigned long fm_port, + int irq, int dma1, int dma2) { struct snd_es18xx *chip = card->private_data; static struct snd_device_ops ops = { @@ -1805,7 +1805,7 @@ static int __devinit snd_es18xx_new_device(struct snd_card *card, return -EBUSY; } - if (request_irq(irq, snd_es18xx_interrupt, IRQF_DISABLED, "ES18xx", + if (request_irq(irq, snd_es18xx_interrupt, 0, "ES18xx", (void *) card)) { snd_es18xx_free(card); snd_printk(KERN_ERR PFX "unable to grap IRQ %d\n", irq); @@ -1839,7 +1839,7 @@ static int __devinit snd_es18xx_new_device(struct snd_card *card, return 0; } -static int __devinit snd_es18xx_mixer(struct snd_card *card) +static int snd_es18xx_mixer(struct snd_card *card) { struct snd_es18xx *chip = card->private_data; int err; @@ -1964,9 +1964,9 @@ MODULE_SUPPORTED_DEVICE("{{ESS,ES1868 PnP AudioDrive}," 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] = SNDRV_DEFAULT_ENABLE_ISAPNP; +static bool isapnp[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_ISAPNP; #endif static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x220,0x240,0x260,0x280 */ #ifndef CONFIG_PNP @@ -2016,7 +2016,7 @@ static struct pnp_device_id snd_audiodrive_pnpbiosids[] = { MODULE_DEVICE_TABLE(pnp, snd_audiodrive_pnpbiosids); /* PnP main device initialization */ -static int __devinit snd_audiodrive_pnp_init_main(int dev, struct pnp_dev *pdev) +static int snd_audiodrive_pnp_init_main(int dev, struct pnp_dev *pdev) { if (pnp_activate_dev(pdev) < 0) { snd_printk(KERN_ERR PFX "PnP configure failure (out of resources?)\n"); @@ -2043,8 +2043,8 @@ static int __devinit snd_audiodrive_pnp_init_main(int dev, struct pnp_dev *pdev) return 0; } -static int __devinit snd_audiodrive_pnp(int dev, struct snd_es18xx *chip, - struct pnp_dev *pdev) +static int snd_audiodrive_pnp(int dev, struct snd_es18xx *chip, + struct pnp_dev *pdev) { chip->dev = pdev; if (snd_audiodrive_pnp_init_main(dev, chip->dev) < 0) @@ -2073,9 +2073,9 @@ static struct pnp_card_device_id snd_audiodrive_pnpids[] = { MODULE_DEVICE_TABLE(pnp_card, snd_audiodrive_pnpids); -static int __devinit snd_audiodrive_pnpc(int dev, struct snd_es18xx *chip, - struct pnp_card_link *card, - const struct pnp_card_device_id *id) +static int snd_audiodrive_pnpc(int dev, struct snd_es18xx *chip, + struct pnp_card_link *card, + const struct pnp_card_device_id *id) { chip->dev = pnp_request_card_device(card, id->devs[0].id, NULL); if (chip->dev == NULL) @@ -2105,13 +2105,14 @@ static int __devinit snd_audiodrive_pnpc(int dev, struct snd_es18xx *chip, #define is_isapnp_selected(dev) 0 #endif -static int snd_es18xx_card_new(int dev, struct snd_card **cardp) +static int snd_es18xx_card_new(struct device *pdev, int dev, + struct snd_card **cardp) { - return snd_card_create(index[dev], id[dev], THIS_MODULE, - sizeof(struct snd_es18xx), cardp); + return snd_card_new(pdev, index[dev], id[dev], THIS_MODULE, + sizeof(struct snd_es18xx), cardp); } -static int __devinit snd_audiodrive_probe(struct snd_card *card, int dev) +static int snd_audiodrive_probe(struct snd_card *card, int dev) { struct snd_es18xx *chip = card->private_data; struct snd_opl3 *opl3; @@ -2160,8 +2161,8 @@ static int __devinit snd_audiodrive_probe(struct snd_card *card, int dev) if (mpu_port[dev] > 0 && mpu_port[dev] != SNDRV_AUTO_PORT) { err = snd_mpu401_uart_new(card, 0, MPU401_HW_ES18XX, - mpu_port[dev], 0, - irq[dev], 0, &chip->rmidi); + mpu_port[dev], MPU401_INFO_IRQ_HOOK, + -1, &chip->rmidi); if (err < 0) return err; } @@ -2169,20 +2170,19 @@ static int __devinit snd_audiodrive_probe(struct snd_card *card, int dev) return snd_card_register(card); } -static int __devinit snd_es18xx_isa_match(struct device *pdev, unsigned int dev) +static int snd_es18xx_isa_match(struct device *pdev, unsigned int dev) { return enable[dev] && !is_isapnp_selected(dev); } -static int __devinit snd_es18xx_isa_probe1(int dev, struct device *devptr) +static int snd_es18xx_isa_probe1(int dev, struct device *devptr) { struct snd_card *card; int err; - err = snd_es18xx_card_new(dev, &card); + err = snd_es18xx_card_new(devptr, dev, &card); if (err < 0) return err; - snd_card_set_dev(card, devptr); if ((err = snd_audiodrive_probe(card, dev)) < 0) { snd_card_free(card); return err; @@ -2191,7 +2191,7 @@ static int __devinit snd_es18xx_isa_probe1(int dev, struct device *devptr) return 0; } -static int __devinit snd_es18xx_isa_probe(struct device *pdev, unsigned int dev) +static int snd_es18xx_isa_probe(struct device *pdev, unsigned int dev) { int err; static int possible_irqs[] = {5, 9, 10, 7, 11, 12, -1}; @@ -2231,11 +2231,10 @@ static int __devinit snd_es18xx_isa_probe(struct device *pdev, unsigned int dev) } } -static int __devexit snd_es18xx_isa_remove(struct device *devptr, - unsigned int dev) +static int snd_es18xx_isa_remove(struct device *devptr, + unsigned int dev) { snd_card_free(dev_get_drvdata(devptr)); - dev_set_drvdata(devptr, NULL); return 0; } @@ -2257,7 +2256,7 @@ static int snd_es18xx_isa_resume(struct device *dev, unsigned int n) static struct isa_driver snd_es18xx_isa_driver = { .match = snd_es18xx_isa_match, .probe = snd_es18xx_isa_probe, - .remove = __devexit_p(snd_es18xx_isa_remove), + .remove = snd_es18xx_isa_remove, #ifdef CONFIG_PM .suspend = snd_es18xx_isa_suspend, .resume = snd_es18xx_isa_resume, @@ -2269,8 +2268,8 @@ static struct isa_driver snd_es18xx_isa_driver = { #ifdef CONFIG_PNP -static int __devinit snd_audiodrive_pnp_detect(struct pnp_dev *pdev, - const struct pnp_device_id *id) +static int snd_audiodrive_pnp_detect(struct pnp_dev *pdev, + const struct pnp_device_id *id) { static int dev; int err; @@ -2285,14 +2284,13 @@ static int __devinit snd_audiodrive_pnp_detect(struct pnp_dev *pdev, if (dev >= SNDRV_CARDS) return -ENODEV; - err = snd_es18xx_card_new(dev, &card); + err = snd_es18xx_card_new(&pdev->dev, dev, &card); if (err < 0) return err; if ((err = snd_audiodrive_pnp(dev, card->private_data, pdev)) < 0) { snd_card_free(card); return err; } - snd_card_set_dev(card, &pdev->dev); if ((err = snd_audiodrive_probe(card, dev)) < 0) { snd_card_free(card); return err; @@ -2302,10 +2300,9 @@ static int __devinit snd_audiodrive_pnp_detect(struct pnp_dev *pdev, return 0; } -static void __devexit snd_audiodrive_pnp_remove(struct pnp_dev * pdev) +static void snd_audiodrive_pnp_remove(struct pnp_dev *pdev) { snd_card_free(pnp_get_drvdata(pdev)); - pnp_set_drvdata(pdev, NULL); } #ifdef CONFIG_PM @@ -2323,15 +2320,15 @@ static struct pnp_driver es18xx_pnp_driver = { .name = "es18xx-pnpbios", .id_table = snd_audiodrive_pnpbiosids, .probe = snd_audiodrive_pnp_detect, - .remove = __devexit_p(snd_audiodrive_pnp_remove), + .remove = snd_audiodrive_pnp_remove, #ifdef CONFIG_PM .suspend = snd_audiodrive_pnp_suspend, .resume = snd_audiodrive_pnp_resume, #endif }; -static int __devinit snd_audiodrive_pnpc_detect(struct pnp_card_link *pcard, - const struct pnp_card_device_id *pid) +static int snd_audiodrive_pnpc_detect(struct pnp_card_link *pcard, + const struct pnp_card_device_id *pid) { static int dev; struct snd_card *card; @@ -2344,7 +2341,7 @@ static int __devinit snd_audiodrive_pnpc_detect(struct pnp_card_link *pcard, if (dev >= SNDRV_CARDS) return -ENODEV; - res = snd_es18xx_card_new(dev, &card); + res = snd_es18xx_card_new(&pcard->card->dev, dev, &card); if (res < 0) return res; @@ -2352,7 +2349,6 @@ static int __devinit snd_audiodrive_pnpc_detect(struct pnp_card_link *pcard, snd_card_free(card); return res; } - snd_card_set_dev(card, &pcard->card->dev); if ((res = snd_audiodrive_probe(card, dev)) < 0) { snd_card_free(card); return res; @@ -2363,7 +2359,7 @@ static int __devinit snd_audiodrive_pnpc_detect(struct pnp_card_link *pcard, return 0; } -static void __devexit snd_audiodrive_pnpc_remove(struct pnp_card_link * pcard) +static void snd_audiodrive_pnpc_remove(struct pnp_card_link *pcard) { snd_card_free(pnp_get_card_drvdata(pcard)); pnp_set_card_drvdata(pcard, NULL); @@ -2387,7 +2383,7 @@ static struct pnp_card_driver es18xx_pnpc_driver = { .name = "es18xx", .id_table = snd_audiodrive_pnpids, .probe = snd_audiodrive_pnpc_detect, - .remove = __devexit_p(snd_audiodrive_pnpc_remove), + .remove = snd_audiodrive_pnpc_remove, #ifdef CONFIG_PM .suspend = snd_audiodrive_pnpc_suspend, .resume = snd_audiodrive_pnpc_resume, |
