diff options
Diffstat (limited to 'sound/drivers/portman2x4.c')
| -rw-r--r-- | sound/drivers/portman2x4.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c index 0eb9b5cebfc..78ccfa45552 100644 --- a/sound/drivers/portman2x4.c +++ b/sound/drivers/portman2x4.c @@ -37,12 +37,13 @@ * - ported from alsa 0.5 to 1.0 */ -#include <sound/driver.h> #include <linux/init.h> #include <linux/platform_device.h> #include <linux/parport.h> #include <linux/spinlock.h> #include <linux/delay.h> +#include <linux/slab.h> +#include <linux/module.h> #include <sound/core.h> #include <sound/initval.h> #include <sound/rawmidi.h> @@ -54,7 +55,7 @@ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; -static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; +static bool enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; static struct platform_device *platform_devices[SNDRV_CARDS]; static int device_count; @@ -95,9 +96,9 @@ static int portman_free(struct portman *pm) return 0; } -static int __devinit portman_create(struct snd_card *card, - struct pardevice *pardev, - struct portman **rchip) +static int portman_create(struct snd_card *card, + struct pardevice *pardev, + struct portman **rchip) { struct portman *pm; @@ -560,7 +561,7 @@ static struct snd_rawmidi_ops snd_portman_midi_input = { }; /* Create and initialize the rawmidi component */ -static int __devinit snd_portman_rawmidi_create(struct snd_card *card) +static int snd_portman_rawmidi_create(struct snd_card *card) { struct portman *pm = card->private_data; struct snd_rawmidi *rmidi; @@ -611,7 +612,7 @@ static int __devinit snd_portman_rawmidi_create(struct snd_card *card) /********************************************************************* * parport stuff *********************************************************************/ -static void snd_portman_interrupt(int irq, void *userdata) +static void snd_portman_interrupt(void *userdata) { unsigned char midivalue = 0; struct portman *pm = ((struct snd_card*)userdata)->private_data; @@ -647,7 +648,7 @@ static void snd_portman_interrupt(int irq, void *userdata) spin_unlock(&pm->reg_lock); } -static int __devinit snd_portman_probe_port(struct parport *p) +static int snd_portman_probe_port(struct parport *p) { struct pardevice *pardev; int res; @@ -668,10 +669,10 @@ static int __devinit snd_portman_probe_port(struct parport *p) parport_release(pardev); parport_unregister_device(pardev); - return res; + return res ? -EIO : 0; } -static void __devinit snd_portman_attach(struct parport *p) +static void snd_portman_attach(struct parport *p) { struct platform_device *device; @@ -727,7 +728,7 @@ static void snd_portman_card_private_free(struct snd_card *card) portman_free(pm); } -static int __devinit snd_portman_probe(struct platform_device *pdev) +static int snd_portman_probe(struct platform_device *pdev) { struct pardevice *pardev; struct parport *p; @@ -747,10 +748,11 @@ static int __devinit snd_portman_probe(struct platform_device *pdev) if ((err = snd_portman_probe_port(p)) < 0) return err; - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); - if (card == NULL) { + err = snd_card_new(&pdev->dev, index[dev], id[dev], THIS_MODULE, + 0, &card); + if (err < 0) { snd_printd("Cannot create card\n"); - return -ENOMEM; + return err; } strcpy(card->driver, DRIVER_NAME); strcpy(card->shortname, CARD_NAME); @@ -811,7 +813,7 @@ __err: return err; } -static int __devexit snd_portman_remove(struct platform_device *pdev) +static int snd_portman_remove(struct platform_device *pdev) { struct snd_card *card = platform_get_drvdata(pdev); @@ -824,9 +826,10 @@ static int __devexit snd_portman_remove(struct platform_device *pdev) static struct platform_driver snd_portman_driver = { .probe = snd_portman_probe, - .remove = __devexit_p(snd_portman_remove), + .remove = snd_portman_remove, .driver = { - .name = PLATFORM_DRIVER + .name = PLATFORM_DRIVER, + .owner = THIS_MODULE, } }; |
