X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Fdrivers%2Fopl3%2Fopl3_lib.c;fp=sound%2Fdrivers%2Fopl3%2Fopl3_lib.c;h=4f85569767742be4c4e090d5f353e685120939a9;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=c313e5205cb87365793fea44b2f3fff66f5a69de;hpb=cee37fe97739d85991964371c1f3a745c00dd236;p=linux-2.6.git diff --git a/sound/drivers/opl3/opl3_lib.c b/sound/drivers/opl3/opl3_lib.c index c313e5205..4f8556976 100644 --- a/sound/drivers/opl3/opl3_lib.c +++ b/sound/drivers/opl3/opl3_lib.c @@ -37,7 +37,7 @@ MODULE_LICENSE("GPL"); extern char snd_opl3_regmap[MAX_OPL2_VOICES][4]; -static void snd_opl2_command(opl3_t * opl3, unsigned short cmd, unsigned char val) +static void snd_opl2_command(struct snd_opl3 * opl3, unsigned short cmd, unsigned char val) { unsigned long flags; unsigned long port; @@ -60,7 +60,7 @@ static void snd_opl2_command(opl3_t * opl3, unsigned short cmd, unsigned char va spin_unlock_irqrestore(&opl3->reg_lock, flags); } -static void snd_opl3_command(opl3_t * opl3, unsigned short cmd, unsigned char val) +static void snd_opl3_command(struct snd_opl3 * opl3, unsigned short cmd, unsigned char val) { unsigned long flags; unsigned long port; @@ -85,7 +85,7 @@ static void snd_opl3_command(opl3_t * opl3, unsigned short cmd, unsigned char va spin_unlock_irqrestore(&opl3->reg_lock, flags); } -static int snd_opl3_detect(opl3_t * opl3) +static int snd_opl3_detect(struct snd_opl3 * opl3) { /* * This function returns 1 if the FM chip is present at the given I/O port @@ -153,12 +153,12 @@ static int snd_opl3_detect(opl3_t * opl3) * Timer 1 - 80us */ -static int snd_opl3_timer1_start(snd_timer_t * timer) +static int snd_opl3_timer1_start(struct snd_timer * timer) { unsigned long flags; unsigned char tmp; unsigned int ticks; - opl3_t *opl3; + struct snd_opl3 *opl3; opl3 = snd_timer_chip(timer); spin_lock_irqsave(&opl3->timer_lock, flags); @@ -171,11 +171,11 @@ static int snd_opl3_timer1_start(snd_timer_t * timer) return 0; } -static int snd_opl3_timer1_stop(snd_timer_t * timer) +static int snd_opl3_timer1_stop(struct snd_timer * timer) { unsigned long flags; unsigned char tmp; - opl3_t *opl3; + struct snd_opl3 *opl3; opl3 = snd_timer_chip(timer); spin_lock_irqsave(&opl3->timer_lock, flags); @@ -190,12 +190,12 @@ static int snd_opl3_timer1_stop(snd_timer_t * timer) * Timer 2 - 320us */ -static int snd_opl3_timer2_start(snd_timer_t * timer) +static int snd_opl3_timer2_start(struct snd_timer * timer) { unsigned long flags; unsigned char tmp; unsigned int ticks; - opl3_t *opl3; + struct snd_opl3 *opl3; opl3 = snd_timer_chip(timer); spin_lock_irqsave(&opl3->timer_lock, flags); @@ -208,11 +208,11 @@ static int snd_opl3_timer2_start(snd_timer_t * timer) return 0; } -static int snd_opl3_timer2_stop(snd_timer_t * timer) +static int snd_opl3_timer2_stop(struct snd_timer * timer) { unsigned long flags; unsigned char tmp; - opl3_t *opl3; + struct snd_opl3 *opl3; opl3 = snd_timer_chip(timer); spin_lock_irqsave(&opl3->timer_lock, flags); @@ -227,7 +227,7 @@ static int snd_opl3_timer2_stop(snd_timer_t * timer) */ -static struct _snd_timer_hardware snd_opl3_timer1 = +static struct snd_timer_hardware snd_opl3_timer1 = { .flags = SNDRV_TIMER_HW_STOP, .resolution = 80000, @@ -236,7 +236,7 @@ static struct _snd_timer_hardware snd_opl3_timer1 = .stop = snd_opl3_timer1_stop, }; -static struct _snd_timer_hardware snd_opl3_timer2 = +static struct snd_timer_hardware snd_opl3_timer2 = { .flags = SNDRV_TIMER_HW_STOP, .resolution = 320000, @@ -245,10 +245,10 @@ static struct _snd_timer_hardware snd_opl3_timer2 = .stop = snd_opl3_timer2_stop, }; -static int snd_opl3_timer1_init(opl3_t * opl3, int timer_no) +static int snd_opl3_timer1_init(struct snd_opl3 * opl3, int timer_no) { - snd_timer_t *timer = NULL; - snd_timer_id_t tid; + struct snd_timer *timer = NULL; + struct snd_timer_id tid; int err; tid.dev_class = SNDRV_TIMER_CLASS_CARD; @@ -265,10 +265,10 @@ static int snd_opl3_timer1_init(opl3_t * opl3, int timer_no) return err; } -static int snd_opl3_timer2_init(opl3_t * opl3, int timer_no) +static int snd_opl3_timer2_init(struct snd_opl3 * opl3, int timer_no) { - snd_timer_t *timer = NULL; - snd_timer_id_t tid; + struct snd_timer *timer = NULL; + struct snd_timer_id tid; int err; tid.dev_class = SNDRV_TIMER_CLASS_CARD; @@ -289,11 +289,11 @@ static int snd_opl3_timer2_init(opl3_t * opl3, int timer_no) */ -void snd_opl3_interrupt(snd_hwdep_t * hw) +void snd_opl3_interrupt(struct snd_hwdep * hw) { unsigned char status; - opl3_t *opl3; - snd_timer_t *timer; + struct snd_opl3 *opl3; + struct snd_timer *timer; if (hw == NULL) return; @@ -320,49 +320,45 @@ void snd_opl3_interrupt(snd_hwdep_t * hw) */ -static int snd_opl3_free(opl3_t *opl3) +static int snd_opl3_free(struct snd_opl3 *opl3) { snd_assert(opl3 != NULL, return -ENXIO); if (opl3->private_free) opl3->private_free(opl3); - if (opl3->res_l_port) { - release_resource(opl3->res_l_port); - kfree_nocheck(opl3->res_l_port); - } - if (opl3->res_r_port) { - release_resource(opl3->res_r_port); - kfree_nocheck(opl3->res_r_port); - } + release_and_free_resource(opl3->res_l_port); + release_and_free_resource(opl3->res_r_port); kfree(opl3); return 0; } -static int snd_opl3_dev_free(snd_device_t *device) +static int snd_opl3_dev_free(struct snd_device *device) { - opl3_t *opl3 = device->device_data; + struct snd_opl3 *opl3 = device->device_data; return snd_opl3_free(opl3); } -int snd_opl3_new(snd_card_t *card, +int snd_opl3_new(struct snd_card *card, unsigned short hardware, - opl3_t **ropl3) + struct snd_opl3 **ropl3) { - static snd_device_ops_t ops = { + static struct snd_device_ops ops = { .dev_free = snd_opl3_dev_free, }; - opl3_t *opl3; + struct snd_opl3 *opl3; int err; *ropl3 = NULL; - opl3 = kcalloc(1, sizeof(*opl3), GFP_KERNEL); - if (opl3 == NULL) + opl3 = kzalloc(sizeof(*opl3), GFP_KERNEL); + 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); @@ -373,7 +369,7 @@ int snd_opl3_new(snd_card_t *card, return 0; } -int snd_opl3_init(opl3_t *opl3) +int snd_opl3_init(struct snd_opl3 *opl3) { if (! opl3->command) { printk(KERN_ERR "snd_opl3_init: command not defined!\n"); @@ -397,14 +393,14 @@ int snd_opl3_init(opl3_t *opl3) return 0; } -int snd_opl3_create(snd_card_t * card, +int snd_opl3_create(struct snd_card *card, unsigned long l_port, unsigned long r_port, unsigned short hardware, int integrated, - opl3_t ** ropl3) + struct snd_opl3 ** ropl3) { - opl3_t *opl3; + struct snd_opl3 *opl3; int err; *ropl3 = NULL; @@ -413,13 +409,13 @@ int snd_opl3_create(snd_card_t * 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; } } @@ -438,7 +434,7 @@ int snd_opl3_create(snd_card_t * 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 */ @@ -455,7 +451,7 @@ int snd_opl3_create(snd_card_t * card, return 0; } -int snd_opl3_timer_new(opl3_t * opl3, int timer1_dev, int timer2_dev) +int snd_opl3_timer_new(struct snd_opl3 * opl3, int timer1_dev, int timer2_dev) { int err; @@ -472,12 +468,12 @@ int snd_opl3_timer_new(opl3_t * opl3, int timer1_dev, int timer2_dev) return 0; } -int snd_opl3_hwdep_new(opl3_t * opl3, +int snd_opl3_hwdep_new(struct snd_opl3 * opl3, int device, int seq_device, - snd_hwdep_t ** rhwdep) + struct snd_hwdep ** rhwdep) { - snd_hwdep_t *hw; - snd_card_t *card = opl3->card; + struct snd_hwdep *hw; + struct snd_card *card = opl3->card; int err; if (rhwdep) @@ -520,9 +516,9 @@ int snd_opl3_hwdep_new(opl3_t * opl3, opl3->seq_dev_num = seq_device; #if defined(CONFIG_SND_SEQUENCER) || (defined(MODULE) && defined(CONFIG_SND_SEQUENCER_MODULE)) if (snd_seq_device_new(card, seq_device, SNDRV_SEQ_DEV_ID_OPL3, - sizeof(opl3_t*), &opl3->seq_dev) >= 0) { + sizeof(struct snd_opl3 *), &opl3->seq_dev) >= 0) { strcpy(opl3->seq_dev->name, hw->name); - *(opl3_t**)SNDRV_SEQ_DEVICE_ARGPTR(opl3->seq_dev) = opl3; + *(struct snd_opl3 **)SNDRV_SEQ_DEVICE_ARGPTR(opl3->seq_dev) = opl3; } #endif if (rhwdep)