]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - sound/drivers/opl3/opl3_lib.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[mv-sheeva.git] / sound / drivers / opl3 / opl3_lib.c
index cbd37e9196019745b7c822c8f8d8759aba96fadd..a2b9ce06029526a6e733d86e0dcd37b6e2dc4189 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) by Jaroslav Kysela <perex@suse.cz>,
+ *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
  *                   Hannu Savolainen 1993-1996,
  *                   Rob Hooft
  *                   
@@ -31,7 +31,7 @@
 #include <linux/ioport.h>
 #include <sound/minors.h>
 
-MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Hannu Savolainen 1993-1996, Rob Hooft");
+MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>, Hannu Savolainen 1993-1996, Rob Hooft");
 MODULE_DESCRIPTION("Routines for control of AdLib FM cards (OPL2/OPL3/OPL4 chips)");
 MODULE_LICENSE("GPL");
 
@@ -316,6 +316,8 @@ void snd_opl3_interrupt(struct snd_hwdep * hw)
        }
 }
 
+EXPORT_SYMBOL(snd_opl3_interrupt);
+
 /*
 
  */
@@ -349,14 +351,16 @@ int snd_opl3_new(struct snd_card *card,
 
        *ropl3 = NULL;
        opl3 = kzalloc(sizeof(*opl3), GFP_KERNEL);
-       if (opl3 == NULL)
+       if (opl3 == NULL) {
+               snd_printk(KERN_ERR "opl3: cannot allocate\n");
                return -ENOMEM;
+       }
 
        opl3->card = card;
        opl3->hardware = hardware;
        spin_lock_init(&opl3->reg_lock);
        spin_lock_init(&opl3->timer_lock);
-       init_MUTEX(&opl3->access_mutex);
+       mutex_init(&opl3->access_mutex);
 
        if ((err = snd_device_new(card, SNDRV_DEV_CODEC, opl3, &ops)) < 0) {
                snd_opl3_free(opl3);
@@ -367,6 +371,8 @@ int snd_opl3_new(struct snd_card *card,
        return 0;
 }
 
+EXPORT_SYMBOL(snd_opl3_new);
+
 int snd_opl3_init(struct snd_opl3 *opl3)
 {
        if (! opl3->command) {
@@ -391,6 +397,8 @@ int snd_opl3_init(struct snd_opl3 *opl3)
        return 0;
 }
 
+EXPORT_SYMBOL(snd_opl3_init);
+
 int snd_opl3_create(struct snd_card *card,
                    unsigned long l_port,
                    unsigned long r_port,
@@ -407,13 +415,13 @@ int snd_opl3_create(struct snd_card *card,
        if (! integrated) {
                if ((opl3->res_l_port = request_region(l_port, 2, "OPL2/3 (left)")) == NULL) {
                        snd_printk(KERN_ERR "opl3: can't grab left port 0x%lx\n", l_port);
-                       snd_opl3_free(opl3);
+                       snd_device_free(card, opl3);
                        return -EBUSY;
                }
                if (r_port != 0 &&
                    (opl3->res_r_port = request_region(r_port, 2, "OPL2/3 (right)")) == NULL) {
                        snd_printk(KERN_ERR "opl3: can't grab right port 0x%lx\n", r_port);
-                       snd_opl3_free(opl3);
+                       snd_device_free(card, opl3);
                        return -EBUSY;
                }
        }
@@ -432,7 +440,7 @@ int snd_opl3_create(struct snd_card *card,
                if ((err = snd_opl3_detect(opl3)) < 0) {
                        snd_printd("OPL2/3 chip not detected at 0x%lx/0x%lx\n",
                                   opl3->l_port, opl3->r_port);
-                       snd_opl3_free(opl3);
+                       snd_device_free(card, opl3);
                        return err;
                }
                /* detect routine returns correct hardware type */
@@ -449,6 +457,8 @@ int snd_opl3_create(struct snd_card *card,
        return 0;
 }
 
+EXPORT_SYMBOL(snd_opl3_create);
+
 int snd_opl3_timer_new(struct snd_opl3 * opl3, int timer1_dev, int timer2_dev)
 {
        int err;
@@ -466,6 +476,8 @@ int snd_opl3_timer_new(struct snd_opl3 * opl3, int timer1_dev, int timer2_dev)
        return 0;
 }
 
+EXPORT_SYMBOL(snd_opl3_timer_new);
+
 int snd_opl3_hwdep_new(struct snd_opl3 * opl3,
                       int device, int seq_device,
                       struct snd_hwdep ** rhwdep)
@@ -524,17 +536,8 @@ int snd_opl3_hwdep_new(struct snd_opl3 * opl3,
        return 0;
 }
 
-EXPORT_SYMBOL(snd_opl3_interrupt);
-EXPORT_SYMBOL(snd_opl3_new);
-EXPORT_SYMBOL(snd_opl3_init);
-EXPORT_SYMBOL(snd_opl3_create);
-EXPORT_SYMBOL(snd_opl3_timer_new);
 EXPORT_SYMBOL(snd_opl3_hwdep_new);
 
-/* opl3_synth.c */
-EXPORT_SYMBOL(snd_opl3_regmap);
-EXPORT_SYMBOL(snd_opl3_reset);
-
 /*
  *  INIT part
  */