[ALSA] intel8x0 - Fix irq handler registration
[powerpc.git] / sound / drivers / mtpav.c
index 1280a57..e9d52c6 100644 (file)
@@ -688,7 +688,7 @@ static int snd_mtpav_get_RAWMIDI(mtpav_t * mcard)
 
 static mtpav_t *new_mtpav(void)
 {
-       mtpav_t *ncrd = kcalloc(1, sizeof(*ncrd), GFP_KERNEL);
+       mtpav_t *ncrd = kzalloc(sizeof(*ncrd), GFP_KERNEL);
        if (ncrd != NULL) {
                spin_lock_init(&ncrd->spinlock);
 
@@ -717,10 +717,7 @@ static void free_mtpav(mtpav_t * crd)
        spin_unlock_irqrestore(&crd->spinlock, flags);
        if (crd->irq >= 0)
                free_irq(crd->irq, (void *)crd);
-       if (crd->res_port) {
-               release_resource(crd->res_port);
-               kfree_nocheck(crd->res_port);
-       }
+       release_and_free_resource(crd->res_port);
        kfree(crd);
 }
 
@@ -757,6 +754,9 @@ static int __init alsa_card_mtpav_init(void)
        if (err < 0)
                goto __error;
 
+       if ((err = snd_card_set_generic_dev(mtp_card->card)) < 0)
+               goto __error;
+
        err = snd_card_register(mtp_card->card);        // don't snd_card_register until AFTER all cards reources done!
 
        //printk("snd_card_register returned %d\n", err);