Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / sound / drivers / opl4 / opl4_lib.c
index 8261464..4bc860a 100644 (file)
@@ -27,14 +27,14 @@ MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
 MODULE_DESCRIPTION("OPL4 driver");
 MODULE_LICENSE("GPL");
 
-static void inline snd_opl4_wait(opl4_t *opl4)
+static void inline snd_opl4_wait(struct snd_opl4 *opl4)
 {
        int timeout = 10;
        while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
                ;
 }
 
-void snd_opl4_write(opl4_t *opl4, u8 reg, u8 value)
+void snd_opl4_write(struct snd_opl4 *opl4, u8 reg, u8 value)
 {
        snd_opl4_wait(opl4);
        outb(reg, opl4->pcm_port);
@@ -43,7 +43,7 @@ void snd_opl4_write(opl4_t *opl4, u8 reg, u8 value)
        outb(value, opl4->pcm_port + 1);
 }
 
-u8 snd_opl4_read(opl4_t *opl4, u8 reg)
+u8 snd_opl4_read(struct snd_opl4 *opl4, u8 reg)
 {
        snd_opl4_wait(opl4);
        outb(reg, opl4->pcm_port);
@@ -52,7 +52,7 @@ u8 snd_opl4_read(opl4_t *opl4, u8 reg)
        return inb(opl4->pcm_port + 1);
 }
 
-void snd_opl4_read_memory(opl4_t *opl4, char *buf, int offset, int size)
+void snd_opl4_read_memory(struct snd_opl4 *opl4, char *buf, int offset, int size)
 {
        unsigned long flags;
        u8 memcfg;
@@ -76,7 +76,7 @@ void snd_opl4_read_memory(opl4_t *opl4, char *buf, int offset, int size)
        spin_unlock_irqrestore(&opl4->reg_lock, flags);
 }
 
-void snd_opl4_write_memory(opl4_t *opl4, const char *buf, int offset, int size)
+void snd_opl4_write_memory(struct snd_opl4 *opl4, const char *buf, int offset, int size)
 {
        unsigned long flags;
        u8 memcfg;
@@ -100,7 +100,7 @@ void snd_opl4_write_memory(opl4_t *opl4, const char *buf, int offset, int size)
        spin_unlock_irqrestore(&opl4->reg_lock, flags);
 }
 
-static void snd_opl4_enable_opl4(opl4_t *opl4)
+static void snd_opl4_enable_opl4(struct snd_opl4 *opl4)
 {
        outb(OPL3_REG_MODE, opl4->fm_port + 2);
        inb(opl4->fm_port);
@@ -110,7 +110,7 @@ static void snd_opl4_enable_opl4(opl4_t *opl4)
        inb(opl4->fm_port);
 }
 
-static int snd_opl4_detect(opl4_t *opl4)
+static int snd_opl4_detect(struct snd_opl4 *opl4)
 {
        u8 id1, id2;
 
@@ -144,19 +144,19 @@ static int snd_opl4_detect(opl4_t *opl4)
 }
 
 #if defined(CONFIG_SND_SEQUENCER) || (defined(MODULE) && defined(CONFIG_SND_SEQUENCER_MODULE))
-static void snd_opl4_seq_dev_free(snd_seq_device_t *seq_dev)
+static void snd_opl4_seq_dev_free(struct snd_seq_device *seq_dev)
 {
-       opl4_t *opl4 = seq_dev->private_data;
+       struct snd_opl4 *opl4 = seq_dev->private_data;
        opl4->seq_dev = NULL;
 }
 
-static int snd_opl4_create_seq_dev(opl4_t *opl4, int seq_device)
+static int snd_opl4_create_seq_dev(struct snd_opl4 *opl4, int seq_device)
 {
        opl4->seq_dev_num = seq_device;
        if (snd_seq_device_new(opl4->card, seq_device, SNDRV_SEQ_DEV_ID_OPL4,
-                              sizeof(opl4_t *), &opl4->seq_dev) >= 0) {
+                              sizeof(struct snd_opl4 *), &opl4->seq_dev) >= 0) {
                strcpy(opl4->seq_dev->name, "OPL4 Wavetable");
-               *(opl4_t **)SNDRV_SEQ_DEVICE_ARGPTR(opl4->seq_dev) = opl4;
+               *(struct snd_opl4 **)SNDRV_SEQ_DEVICE_ARGPTR(opl4->seq_dev) = opl4;
                opl4->seq_dev->private_data = opl4;
                opl4->seq_dev->private_free = snd_opl4_seq_dev_free;
        }
@@ -164,38 +164,32 @@ static int snd_opl4_create_seq_dev(opl4_t *opl4, int seq_device)
 }
 #endif
 
-static void snd_opl4_free(opl4_t *opl4)
+static void snd_opl4_free(struct snd_opl4 *opl4)
 {
 #ifdef CONFIG_PROC_FS
        snd_opl4_free_proc(opl4);
 #endif
-       if (opl4->res_fm_port) {
-               release_resource(opl4->res_fm_port);
-               kfree_nocheck(opl4->res_fm_port);
-       }
-       if (opl4->res_pcm_port) {
-               release_resource(opl4->res_pcm_port);
-               kfree_nocheck(opl4->res_pcm_port);
-       }
+       release_and_free_resource(opl4->res_fm_port);
+       release_and_free_resource(opl4->res_pcm_port);
        kfree(opl4);
 }
 
-static int snd_opl4_dev_free(snd_device_t *device)
+static int snd_opl4_dev_free(struct snd_device *device)
 {
-       opl4_t *opl4 = device->device_data;
+       struct snd_opl4 *opl4 = device->device_data;
        snd_opl4_free(opl4);
        return 0;
 }
 
-int snd_opl4_create(snd_card_t *card,
+int snd_opl4_create(struct snd_card *card,
                    unsigned long fm_port, unsigned long pcm_port,
                    int seq_device,
-                   opl3_t **ropl3, opl4_t **ropl4)
+                   struct snd_opl3 **ropl3, struct snd_opl4 **ropl4)
 {
-       opl4_t *opl4;
-       opl3_t *opl3;
+       struct snd_opl4 *opl4;
+       struct snd_opl3 *opl3;
        int err;
-       static snd_device_ops_t ops = {
+       static struct snd_device_ops ops = {
                .dev_free = snd_opl4_dev_free
        };
 
@@ -204,7 +198,7 @@ int snd_opl4_create(snd_card_t *card,
        if (ropl4)
                *ropl4 = NULL;
 
-       opl4 = kcalloc(1, sizeof(*opl4), GFP_KERNEL);
+       opl4 = kzalloc(sizeof(*opl4), GFP_KERNEL);
        if (!opl4)
                return -ENOMEM;
 
@@ -220,7 +214,7 @@ int snd_opl4_create(snd_card_t *card,
        opl4->fm_port = fm_port;
        opl4->pcm_port = pcm_port;
        spin_lock_init(&opl4->reg_lock);
-       init_MUTEX(&opl4->access_mutex);
+       mutex_init(&opl4->access_mutex);
 
        err = snd_opl4_detect(opl4);
        if (err < 0) {