Commit fbc4e81f authored by Jaroslav Kysela's avatar Jaroslav Kysela

ALSA CVS update

ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
Wavefront drivers
Removal and replacement of magic memory allocators and casts (isa part)

This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
with kmalloc(), kcalloc() and kfree(), respectively.
The cast via snd_magic_cast() is replaced with the standard cast, too.
Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 54d4b733
......@@ -55,8 +55,6 @@ struct _snd_es1688 {
typedef struct _snd_es1688 es1688_t;
#define chip_t es1688_t
/* I/O ports */
#define ES1688P(codec, x) ((codec)->port + e_s_s_ESS1688##x)
......
......@@ -30,8 +30,6 @@
#include <sound/mpu401.h>
#include <sound/opl3.h>
#define chip_t ad1816a_t
#define PFX "ad1816a: "
MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
......
......@@ -34,8 +34,6 @@ MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
MODULE_DESCRIPTION("lowlevel code for Analog Devices AD1816A chip");
MODULE_LICENSE("GPL");
#define chip_t ad1816a_t
static inline int snd_ad1816a_busy_wait(ad1816a_t *chip)
{
int timeout;
......@@ -313,7 +311,7 @@ static snd_pcm_uframes_t snd_ad1816a_capture_pointer(snd_pcm_substream_t *substr
static irqreturn_t snd_ad1816a_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
ad1816a_t *chip = snd_magic_cast(ad1816a_t, dev_id, return IRQ_NONE);
ad1816a_t *chip = dev_id;
unsigned char status;
spin_lock(&chip->lock);
......@@ -550,13 +548,13 @@ static int snd_ad1816a_free(ad1816a_t *chip)
snd_dma_disable(chip->dma2);
free_dma(chip->dma2);
}
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_ad1816a_dev_free(snd_device_t *device)
{
ad1816a_t *chip = snd_magic_cast(ad1816a_t, device->device_data, return -ENXIO);
ad1816a_t *chip = device->device_data;
return snd_ad1816a_free(chip);
}
......@@ -585,7 +583,7 @@ int snd_ad1816a_create(snd_card_t *card,
*rchip = NULL;
chip = snd_magic_kcalloc(ad1816a_t, 0, GFP_KERNEL);
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
chip->irq = -1;
......@@ -661,7 +659,7 @@ static snd_pcm_ops_t snd_ad1816a_capture_ops = {
static void snd_ad1816a_pcm_free(snd_pcm_t *pcm)
{
ad1816a_t *chip = snd_magic_cast(ad1816a_t, pcm->private_data, return);
ad1816a_t *chip = pcm->private_data;
chip->pcm = NULL;
snd_pcm_lib_preallocate_free_for_all(pcm);
}
......@@ -696,7 +694,7 @@ int snd_ad1816a_pcm(ad1816a_t *chip, int device, snd_pcm_t **rpcm)
static void snd_ad1816a_timer_free(snd_timer_t *timer)
{
ad1816a_t *chip = snd_magic_cast(ad1816a_t, timer->private_data, return);
ad1816a_t *chip = timer->private_data;
chip->timer = NULL;
}
......
......@@ -30,8 +30,6 @@
#include <sound/ad1848.h>
#include <sound/initval.h>
#define chip_t ad1848_t
MODULE_AUTHOR("Tugrul Galatali <galatalt@stuy.edu>, Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("AD1848/AD1847/CS4248");
MODULE_LICENSE("GPL");
......
......@@ -39,8 +39,6 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Routines for control of AD1848/AD1847/CS4248");
MODULE_LICENSE("GPL");
#define chip_t ad1848_t
#if 0
#define SNDRV_DEBUG_MCE
#endif
......@@ -588,7 +586,7 @@ static int snd_ad1848_capture_prepare(snd_pcm_substream_t * substream)
irqreturn_t snd_ad1848_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
ad1848_t *chip = snd_magic_cast(ad1848_t, dev_id, return IRQ_NONE);
ad1848_t *chip = dev_id;
if ((chip->mode & AD1848_MODE_PLAY) && chip->playback_substream &&
(chip->mode & AD1848_MODE_RUNNING))
......@@ -649,7 +647,7 @@ static void snd_ad1848_thinkpad_twiddle(ad1848_t *chip, int on) {
#ifdef CONFIG_PM
static int snd_ad1848_suspend(snd_card_t *card, unsigned int state)
{
ad1848_t *chip = snd_magic_cast(ad1848_t, card->pm_private_data, return -EINVAL);
ad1848_t *chip = card->pm_private_data;
if (card->power_state == SNDRV_CTL_POWER_D3hot)
return 0;
......@@ -666,7 +664,7 @@ static int snd_ad1848_suspend(snd_card_t *card, unsigned int state)
static int snd_ad1848_resume(snd_card_t *card, unsigned int state)
{
ad1848_t *chip = snd_magic_cast(ad1848_t, card->pm_private_data, return -EINVAL);
ad1848_t *chip = card->pm_private_data;
if (card->power_state == SNDRV_CTL_POWER_D0)
return 0;
......@@ -867,13 +865,13 @@ static int snd_ad1848_free(ad1848_t *chip)
snd_dma_disable(chip->dma);
free_dma(chip->dma);
}
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_ad1848_dev_free(snd_device_t *device)
{
ad1848_t *chip = snd_magic_cast(ad1848_t, device->device_data, return -ENXIO);
ad1848_t *chip = device->device_data;
return snd_ad1848_free(chip);
}
......@@ -901,7 +899,7 @@ int snd_ad1848_create(snd_card_t * card,
int err;
*rchip = NULL;
chip = snd_magic_kcalloc(ad1848_t, 0, GFP_KERNEL);
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
spin_lock_init(&chip->reg_lock);
......@@ -977,7 +975,7 @@ static snd_pcm_ops_t snd_ad1848_capture_ops = {
static void snd_ad1848_pcm_free(snd_pcm_t *pcm)
{
ad1848_t *chip = snd_magic_cast(ad1848_t, pcm->private_data, return);
ad1848_t *chip = pcm->private_data;
chip->pcm = NULL;
snd_pcm_lib_preallocate_free_for_all(pcm);
}
......
......@@ -32,8 +32,6 @@
#include <sound/opl3.h>
#include <sound/sb.h>
#define chip_t sb_t
#define PFX "als100: "
MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
......
......@@ -43,8 +43,6 @@
#include <sound/mpu401.h>
#include <sound/opl3.h>
#define chip_t cs4231_t
#define PFX "azt2320: "
MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
......
......@@ -385,7 +385,7 @@ static int __devinit snd_cmi8330_pnp(int dev, struct snd_cmi8330 *acard,
static int snd_cmi8330_playback_open(snd_pcm_substream_t * substream)
{
struct snd_cmi8330 *chip = (struct snd_cmi8330 *)_snd_pcm_substream_chip(substream);
struct snd_cmi8330 *chip = snd_pcm_substream_chip(substream);
/* replace the private_data and call the original open callback */
substream->private_data = chip->streams[SNDRV_PCM_STREAM_PLAYBACK].private_data;
......@@ -394,7 +394,7 @@ static int snd_cmi8330_playback_open(snd_pcm_substream_t * substream)
static int snd_cmi8330_capture_open(snd_pcm_substream_t * substream)
{
struct snd_cmi8330 *chip = (struct snd_cmi8330 *)_snd_pcm_substream_chip(substream);
struct snd_cmi8330 *chip = snd_pcm_substream_chip(substream);
/* replace the private_data and call the original open callback */
substream->private_data = chip->streams[SNDRV_PCM_STREAM_CAPTURE].private_data;
......
......@@ -30,8 +30,6 @@
#include <sound/mpu401.h>
#include <sound/initval.h>
#define chip_t cs4231_t
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Generic CS4231");
MODULE_LICENSE("GPL");
......
......@@ -43,8 +43,6 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Routines for control of CS4231(A)/CS4232/InterWave & compatible chips");
MODULE_LICENSE("GPL");
#define chip_t cs4231_t
#if 0
#define SNDRV_DEBUG_MCE
#endif
......@@ -969,7 +967,7 @@ static void snd_cs4231_overrange(cs4231_t *chip)
irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
cs4231_t *chip = snd_magic_cast(cs4231_t, dev_id, return IRQ_NONE);
cs4231_t *chip = dev_id;
unsigned char status;
status = snd_cs4231_in(chip, CS4231_IRQ_STATUS);
......@@ -1407,7 +1405,7 @@ static void snd_cs4231_resume(cs4231_t *chip)
static int snd_cs4231_pm_suspend(snd_card_t *card, unsigned int state)
{
cs4231_t *chip = snd_magic_cast(cs4231_t, card->pm_private_data, return -EINVAL);
cs4231_t *chip = card->pm_private_data;
if (chip->suspend) {
chip->suspend(chip);
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
......@@ -1417,7 +1415,7 @@ static int snd_cs4231_pm_suspend(snd_card_t *card, unsigned int state)
static int snd_cs4231_pm_resume(snd_card_t *card, unsigned int state)
{
cs4231_t *chip = snd_magic_cast(cs4231_t, card->pm_private_data, return -EINVAL);
cs4231_t *chip = card->pm_private_data;
if (chip->resume) {
chip->resume(chip);
snd_power_change_state(card, SNDRV_CTL_POWER_D0);
......@@ -1453,13 +1451,13 @@ static int snd_cs4231_free(cs4231_t *chip)
}
if (chip->timer)
snd_device_free(chip->card, chip->timer);
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_cs4231_dev_free(snd_device_t *device)
{
cs4231_t *chip = snd_magic_cast(cs4231_t, device->device_data, return -ENXIO);
cs4231_t *chip = device->device_data;
return snd_cs4231_free(chip);
}
......@@ -1493,7 +1491,7 @@ static int snd_cs4231_new(snd_card_t * card,
cs4231_t *chip;
*rchip = NULL;
chip = snd_magic_kcalloc(cs4231_t, 0, GFP_KERNEL);
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
chip->hardware = hardware;
......@@ -1626,7 +1624,7 @@ static snd_pcm_ops_t snd_cs4231_capture_ops = {
static void snd_cs4231_pcm_free(snd_pcm_t *pcm)
{
cs4231_t *chip = snd_magic_cast(cs4231_t, pcm->private_data, return);
cs4231_t *chip = pcm->private_data;
chip->pcm = NULL;
snd_pcm_lib_preallocate_free_for_all(pcm);
}
......@@ -1686,7 +1684,7 @@ int snd_cs4231_pcm(cs4231_t *chip, int device, snd_pcm_t **rpcm)
static void snd_cs4231_timer_free(snd_timer_t *timer)
{
cs4231_t *chip = snd_magic_cast(cs4231_t, timer->private_data, return);
cs4231_t *chip = timer->private_data;
chip->timer = NULL;
}
......
......@@ -30,8 +30,6 @@
#include <sound/opl3.h>
#include <sound/initval.h>
#define chip_t cs4231_t
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_LICENSE("GPL");
MODULE_CLASSES("{sound}");
......
......@@ -93,8 +93,6 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Routines for control of CS4235/4236B/4237B/4238B/4239 chips");
MODULE_LICENSE("GPL");
#define chip_t cs4231_t
/*
*
*/
......
......@@ -33,8 +33,6 @@
#include <sound/opl3.h>
#include <sound/sb.h>
#define chip_t sb_t
#define PFX "dt019x: "
MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
......
......@@ -482,7 +482,7 @@ static int snd_es1688_capture_trigger(snd_pcm_substream_t * substream,
irqreturn_t snd_es1688_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
es1688_t *chip = snd_magic_cast(es1688_t, dev_id, return IRQ_NONE);
es1688_t *chip = dev_id;
if (chip->trigger_value == 0x05) /* ok.. playback is active */
snd_pcm_period_elapsed(chip->playback_substream);
......@@ -616,13 +616,13 @@ static int snd_es1688_free(es1688_t *chip)
disable_dma(chip->dma8);
free_dma(chip->dma8);
}
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_es1688_dev_free(snd_device_t *device)
{
es1688_t *chip = snd_magic_cast(es1688_t, device->device_data, return -ENXIO);
es1688_t *chip = device->device_data;
return snd_es1688_free(chip);
}
......@@ -650,7 +650,7 @@ int snd_es1688_create(snd_card_t * card,
int err;
*rchip = NULL;
chip = snd_magic_kcalloc(es1688_t, 0, GFP_KERNEL);
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
chip->irq = -1;
......@@ -728,7 +728,7 @@ static snd_pcm_ops_t snd_es1688_capture_ops = {
static void snd_es1688_pcm_free(snd_pcm_t *pcm)
{
es1688_t *chip = snd_magic_cast(es1688_t, pcm->private_data, return);
es1688_t *chip = pcm->private_data;
chip->pcm = NULL;
snd_pcm_lib_preallocate_free_for_all(pcm);
}
......
......@@ -157,8 +157,6 @@ struct _snd_es18xx {
typedef struct _snd_es18xx es18xx_t;
#define chip_t es18xx_t
/* Lowlevel */
#define DAC1 0x01
......@@ -728,7 +726,7 @@ static int snd_es18xx_playback_trigger(snd_pcm_substream_t *substream,
static irqreturn_t snd_es18xx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
es18xx_t *chip = snd_magic_cast(es18xx_t, dev_id, return IRQ_NONE);
es18xx_t *chip = dev_id;
unsigned char status;
if (chip->caps & ES18XX_CONTROL) {
......@@ -1027,7 +1025,7 @@ static int snd_es18xx_get_hw_switch(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
static void snd_es18xx_hwv_free(snd_kcontrol_t *kcontrol)
{
es18xx_t *chip = snd_magic_cast(es18xx_t, _snd_kcontrol_chip(kcontrol), return);
es18xx_t *chip = snd_kcontrol_chip(kcontrol);
chip->master_volume = NULL;
chip->master_switch = NULL;
chip->hw_volume = NULL;
......@@ -1561,7 +1559,7 @@ static snd_pcm_ops_t snd_es18xx_capture_ops = {
static void snd_es18xx_pcm_free(snd_pcm_t *pcm)
{
es18xx_t *codec = snd_magic_cast(es18xx_t, pcm->private_data, return);
es18xx_t *codec = pcm->private_data;
codec->pcm = NULL;
snd_pcm_lib_preallocate_free_for_all(pcm);
}
......@@ -1611,7 +1609,7 @@ int __devinit snd_es18xx_pcm(es18xx_t *chip, int device, snd_pcm_t ** rpcm)
#ifdef CONFIG_PM
static int snd_es18xx_suspend(snd_card_t *card, unsigned int state)
{
es18xx_t *chip = snd_magic_cast(es18xx_t, card->pm_private_data, return -EINVAL);
es18xx_t *chip = card->pm_private_data;
snd_pcm_suspend_all(chip->pcm);
......@@ -1627,7 +1625,7 @@ static int snd_es18xx_suspend(snd_card_t *card, unsigned int state)
static int snd_es18xx_resume(snd_card_t *card, unsigned int state)
{
es18xx_t *chip = snd_magic_cast(es18xx_t, card->pm_private_data, return -EINVAL);
es18xx_t *chip = card->pm_private_data;
/* restore PM register, we won't wake till (not 0x07) i/o activity though */
snd_es18xx_write(chip, ES18XX_PM, chip->pm_reg ^= ES18XX_PM_FM);
......@@ -1661,13 +1659,13 @@ static int snd_es18xx_free(es18xx_t *chip)
disable_dma(chip->dma2);
free_dma(chip->dma2);
}
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_es18xx_dev_free(snd_device_t *device)
{
es18xx_t *chip = snd_magic_cast(es18xx_t, device->device_data, return -ENXIO);
es18xx_t *chip = device->device_data;
return snd_es18xx_free(chip);
}
......@@ -1685,7 +1683,7 @@ static int __devinit snd_es18xx_new_device(snd_card_t * card,
int err;
*rchip = NULL;
chip = snd_magic_kcalloc(es18xx_t, 0, GFP_KERNEL);
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
spin_lock_init(&chip->reg_lock);
......
......@@ -31,7 +31,7 @@
int snd_gus_iwffff_put_sample(void *private_data, iwffff_wave_t *wave,
char __user *data, long len, int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
snd_gf1_mem_block_t *block;
int err;
......@@ -61,7 +61,7 @@ int snd_gus_iwffff_put_sample(void *private_data, iwffff_wave_t *wave,
int snd_gus_iwffff_get_sample(void *private_data, iwffff_wave_t *wave,
char __user *data, long len, int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
return snd_gus_dram_read(gus, data, wave->address.memory, wave->size,
wave->format & IWFFFF_WAVE_ROM ? 1 : 0);
......@@ -70,7 +70,7 @@ int snd_gus_iwffff_get_sample(void *private_data, iwffff_wave_t *wave,
int snd_gus_iwffff_remove_sample(void *private_data, iwffff_wave_t *wave,
int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
if (wave->format & IWFFFF_WAVE_ROM)
return 0; /* it's probably ok - verify the address? */
......@@ -84,7 +84,7 @@ int snd_gus_iwffff_remove_sample(void *private_data, iwffff_wave_t *wave,
int snd_gus_gf1_put_sample(void *private_data, gf1_wave_t *wave,
char __user *data, long len, int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
snd_gf1_mem_block_t *block;
int err;
......@@ -112,7 +112,7 @@ int snd_gus_gf1_put_sample(void *private_data, gf1_wave_t *wave,
int snd_gus_gf1_get_sample(void *private_data, gf1_wave_t *wave,
char __user *data, long len, int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
return snd_gus_dram_read(gus, data, wave->address.memory, wave->size, 0);
}
......@@ -120,7 +120,7 @@ int snd_gus_gf1_get_sample(void *private_data, gf1_wave_t *wave,
int snd_gus_gf1_remove_sample(void *private_data, gf1_wave_t *wave,
int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
return snd_gf1_mem_free(&gus->gf1.mem_alloc, wave->address.memory);
}
......@@ -132,7 +132,7 @@ int snd_gus_gf1_remove_sample(void *private_data, gf1_wave_t *wave,
int snd_gus_simple_put_sample(void *private_data, simple_instrument_t *instr,
char __user *data, long len, int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
snd_gf1_mem_block_t *block;
int err;
......@@ -159,7 +159,7 @@ int snd_gus_simple_put_sample(void *private_data, simple_instrument_t *instr,
int snd_gus_simple_get_sample(void *private_data, simple_instrument_t *instr,
char __user *data, long len, int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
return snd_gus_dram_read(gus, data, instr->address.memory, instr->size, 0);
}
......@@ -167,7 +167,7 @@ int snd_gus_simple_get_sample(void *private_data, simple_instrument_t *instr,
int snd_gus_simple_remove_sample(void *private_data, simple_instrument_t *instr,
int atomic)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
snd_gus_card_t *gus = private_data;
return snd_gf1_mem_free(&gus->gf1.mem_alloc, instr->address.memory);
}
......@@ -32,7 +32,7 @@
irqreturn_t snd_gus_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
snd_gus_card_t * gus = snd_magic_cast(snd_gus_card_t, dev_id, return IRQ_NONE);
snd_gus_card_t * gus = dev_id;
unsigned char status;
int loop = 100;
int handled = 0;
......@@ -114,7 +114,7 @@ static void snd_gus_irq_info_read(snd_info_entry_t *entry,
snd_gus_voice_t *pvoice;
int idx;
gus = snd_magic_cast(snd_gus_card_t, entry->private_data, return);
gus = entry->private_data;
snd_iprintf(buffer, "midi out = %u\n", gus->gf1.interrupt_stat_midi_out);
snd_iprintf(buffer, "midi in = %u\n", gus->gf1.interrupt_stat_midi_in);
snd_iprintf(buffer, "timer1 = %u\n", gus->gf1.interrupt_stat_timer1);
......
......@@ -35,8 +35,6 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Routines for Gravis UltraSound soundcards");
MODULE_LICENSE("GPL");
#define chip_t snd_gus_card_t
static int snd_gus_init_dma_irq(snd_gus_card_t * gus, int latches);
int snd_gus_use_inc(snd_gus_card_t * gus)
......@@ -133,13 +131,13 @@ static int snd_gus_free(snd_gus_card_t *gus)
disable_dma(gus->gf1.dma2);
free_dma(gus->gf1.dma2);
}
snd_magic_kfree(gus);
kfree(gus);
return 0;
}
static int snd_gus_dev_free(snd_device_t *device)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, device->device_data, return -ENXIO);
snd_gus_card_t *gus = device->device_data;
return snd_gus_free(gus);
}
......@@ -159,7 +157,7 @@ int snd_gus_create(snd_card_t * card,
};
*rgus = NULL;
gus = snd_magic_kcalloc(snd_gus_card_t, 0, GFP_KERNEL);
gus = kcalloc(1, sizeof(*gus), GFP_KERNEL);
if (gus == NULL)
return -ENOMEM;
gus->gf1.irq = -1;
......@@ -421,7 +419,7 @@ static int snd_gus_check_version(snd_gus_card_t * gus)
static void snd_gus_seq_dev_free(snd_seq_device_t *seq_dev)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, seq_dev->private_data, return);
snd_gus_card_t *gus = seq_dev->private_data;
gus->seq_dev = NULL;
}
......
......@@ -297,7 +297,7 @@ static void snd_gf1_mem_info_read(snd_info_entry_t *entry,
unsigned int total, used;
int i;
gus = snd_magic_cast(snd_gus_card_t, entry->private_data, return);
gus = entry->private_data;
alloc = &gus->gf1.mem_alloc;
down(&alloc->memory_mutex);
snd_iprintf(buffer, "8-bit banks : \n ");
......
......@@ -36,7 +36,7 @@ static long snd_gf1_mem_proc_dump(snd_info_entry_t *entry, void *file_private_da
struct file *file, char __user *buf, long count)
{
long size;
gus_proc_private_t *priv = snd_magic_cast(gus_proc_private_t, entry->private_data, return -ENXIO);
gus_proc_private_t *priv = entry->private_data;
snd_gus_card_t *gus = priv->gus;
int err;
......@@ -58,7 +58,7 @@ static long long snd_gf1_mem_proc_llseek(snd_info_entry_t *entry,
long long offset,
int orig)
{
gus_proc_private_t *priv = snd_magic_cast(gus_proc_private_t, entry->private_data, return -ENXIO);
gus_proc_private_t *priv = entry->private_data;
switch (orig) {
case 0: /* SEEK_SET */
......@@ -80,8 +80,8 @@ static long long snd_gf1_mem_proc_llseek(snd_info_entry_t *entry,
static void snd_gf1_mem_proc_free(snd_info_entry_t *entry)
{
gus_proc_private_t *priv = snd_magic_cast(gus_proc_private_t, entry->private_data, return);
snd_magic_kfree(priv);
gus_proc_private_t *priv = entry->private_data;
kfree(priv);
}
static struct snd_info_entry_ops snd_gf1_mem_proc_ops = {
......@@ -98,7 +98,7 @@ int snd_gf1_mem_proc_init(snd_gus_card_t * gus)
for (idx = 0; idx < 4; idx++) {
if (gus->gf1.mem_alloc.banks_8[idx].size > 0) {
priv = snd_magic_kcalloc(gus_proc_private_t, 0, GFP_KERNEL);
priv = kcalloc(1, sizeof(*priv), GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
priv->gus = gus;
......@@ -115,7 +115,7 @@ int snd_gf1_mem_proc_init(snd_gus_card_t * gus)
}
for (idx = 0; idx < 4; idx++) {
if (gus->gf1.rom_present & (1 << idx)) {
priv = snd_magic_kcalloc(gus_proc_private_t, 0, GFP_KERNEL);
priv = kcalloc(1, sizeof(*priv), GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
priv->rom = 1;
......
......@@ -26,8 +26,6 @@
#include <sound/control.h>
#include <sound/gus.h>
#define chip_t snd_gus_card_t
/*
*
*/
......
......@@ -34,8 +34,6 @@
#include <sound/pcm_params.h>
#include "gus_tables.h"
#define chip_t snd_gus_card_t
/* maximum rate */
#define SNDRV_GF1_PCM_RATE 48000
......@@ -66,7 +64,7 @@ static int snd_gf1_pcm_use_dma = 1;
static void snd_gf1_pcm_block_change_ack(snd_gus_card_t * gus, void *private_data)
{
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, private_data, return);
gus_pcm_private_t *pcmp = private_data;
if (pcmp) {
atomic_dec(&pcmp->dma_count);
......@@ -81,7 +79,7 @@ static int snd_gf1_pcm_block_change(snd_pcm_substream_t * substream,
{
snd_gf1_dma_block_t block;
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
count += offset & 31;
offset &= ~31;
......@@ -106,7 +104,7 @@ static int snd_gf1_pcm_block_change(snd_pcm_substream_t * substream,
static void snd_gf1_pcm_trigger_up(snd_pcm_substream_t * substream)
{
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return);
gus_pcm_private_t *pcmp = runtime->private_data;
snd_gus_card_t * gus = pcmp->gus;
unsigned long flags;
unsigned char voice_ctrl, ramp_ctrl;
......@@ -194,7 +192,7 @@ static void snd_gf1_pcm_interrupt_wave(snd_gus_card_t * gus, snd_gus_voice_t *pv
snd_gf1_smart_stop_voice(gus, pvoice->number);
return;
}
pcmp = snd_magic_cast(gus_pcm_private_t, pvoice->private_data, return);
pcmp = pvoice->private_data;
if (pcmp == NULL) {
snd_printd("snd_gf1_pcm: unknown wave irq?\n");
snd_gf1_smart_stop_voice(gus, pvoice->number);
......@@ -267,7 +265,7 @@ static void snd_gf1_pcm_interrupt_volume(snd_gus_card_t * gus, snd_gus_voice_t *
{
unsigned short vol;
int cvoice;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, pvoice->private_data, return);
gus_pcm_private_t *pcmp = pvoice->private_data;
/* stop ramp, but leave rollover bit untouched */
spin_lock(&gus->reg_lock);
......@@ -350,7 +348,7 @@ static int snd_gf1_pcm_playback_copy(snd_pcm_substream_t *substream,
snd_pcm_uframes_t count)
{
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
unsigned int bpos, len;
bpos = samples_to_bytes(runtime, pos) + (voice * (pcmp->dma_size / 2));
......@@ -379,7 +377,7 @@ static int snd_gf1_pcm_playback_silence(snd_pcm_substream_t *substream,
snd_pcm_uframes_t count)
{
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
unsigned int bpos, len;
bpos = samples_to_bytes(runtime, pos) + (voice * (pcmp->dma_size / 2));
......@@ -406,7 +404,7 @@ static int snd_gf1_pcm_playback_hw_params(snd_pcm_substream_t * substream,
{
snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
int err;
if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0)
......@@ -453,7 +451,7 @@ static int snd_gf1_pcm_playback_hw_params(snd_pcm_substream_t * substream,
static int snd_gf1_pcm_playback_hw_free(snd_pcm_substream_t * substream)
{
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
snd_pcm_lib_free_pages(substream);
if (pcmp->pvoices[0]) {
......@@ -474,7 +472,7 @@ static int snd_gf1_pcm_playback_hw_free(snd_pcm_substream_t * substream)
static int snd_gf1_pcm_playback_prepare(snd_pcm_substream_t * substream)
{
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
pcmp->bpos = 0;
pcmp->dma_size = snd_pcm_lib_buffer_bytes(substream);
......@@ -488,7 +486,7 @@ static int snd_gf1_pcm_playback_trigger(snd_pcm_substream_t * substream,
{
snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
int voice;
if (cmd == SNDRV_PCM_TRIGGER_START) {
......@@ -513,7 +511,7 @@ static snd_pcm_uframes_t snd_gf1_pcm_playback_pointer(snd_pcm_substream_t * subs
{
snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
unsigned int pos;
unsigned char voice_ctrl;
......@@ -657,8 +655,8 @@ static snd_pcm_hardware_t snd_gf1_pcm_capture =
static void snd_gf1_pcm_playback_free(snd_pcm_runtime_t *runtime)
{
gus_pcm_private_t * pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return);
snd_magic_kfree(pcmp);
gus_pcm_private_t * pcmp = runtime->private_data;
kfree(pcmp);
}
static int snd_gf1_pcm_playback_open(snd_pcm_substream_t *substream)
......@@ -668,7 +666,7 @@ static int snd_gf1_pcm_playback_open(snd_pcm_substream_t *substream)
snd_pcm_runtime_t *runtime = substream->runtime;
int err;
pcmp = snd_magic_kcalloc(gus_pcm_private_t, 0, GFP_KERNEL);
pcmp = kcalloc(1, sizeof(*pcmp), GFP_KERNEL);
if (pcmp == NULL)
return -ENOMEM;
pcmp->gus = gus;
......@@ -697,7 +695,7 @@ static int snd_gf1_pcm_playback_close(snd_pcm_substream_t * substream)
{
snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime;
gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
gus_pcm_private_t *pcmp = runtime->private_data;
unsigned long jiffies_old;
jiffies_old = jiffies;
......@@ -738,7 +736,7 @@ static int snd_gf1_pcm_capture_close(snd_pcm_substream_t * substream)
static void snd_gf1_pcm_free(snd_pcm_t *pcm)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, pcm->private_data, return);
snd_gus_card_t *gus = pcm->private_data;
gus->pcm = NULL;
snd_pcm_lib_preallocate_free_for_all(pcm);
}
......@@ -790,7 +788,7 @@ static int snd_gf1_pcm_volume_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
pvoice = &gus->gf1.voices[idx];
if (!pvoice->pcm)
continue;
pcmp = snd_magic_cast(gus_pcm_private_t, pvoice->private_data, return -ENXIO);
pcmp = pvoice->private_data;
if (!(pcmp->flags & SNDRV_GF1_PCM_PFLG_ACTIVE))
continue;
/* load real volume - better precision */
......
......@@ -134,7 +134,7 @@ static void snd_gus_synth_instr_notify(void *private_data,
int what)
{
unsigned int idx;
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return);
snd_gus_card_t *gus = private_data;
snd_gus_voice_t *pvoice;
unsigned long flags;
......
......@@ -26,8 +26,6 @@
#include <sound/core.h>
#include <sound/gus.h>
#define chip_t snd_gus_card_t
/*
* Timer 1 - 80us
*/
......@@ -146,13 +144,13 @@ static struct _snd_timer_hardware snd_gf1_timer2 =
static void snd_gf1_timer1_free(snd_timer_t *timer)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, timer->private_data, return);
snd_gus_card_t *gus = timer->private_data;
gus->gf1.timer1 = NULL;
}
static void snd_gf1_timer2_free(snd_timer_t *timer)
{
snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, timer->private_data, return);
snd_gus_card_t *gus = timer->private_data;
gus->gf1.timer2 = NULL;
}
......
......@@ -95,7 +95,7 @@ static int snd_gf1_uart_output_open(snd_rawmidi_substream_t * substream)
unsigned long flags;
snd_gus_card_t *gus;
gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
gus = substream->rmidi->private_data;
spin_lock_irqsave(&gus->uart_cmd_lock, flags);
if (!(gus->gf1.uart_cmd & 0x80)) { /* input active? */
snd_gf1_uart_reset(gus, 0);
......@@ -115,7 +115,7 @@ static int snd_gf1_uart_input_open(snd_rawmidi_substream_t * substream)
snd_gus_card_t *gus;
int i;
gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
gus = substream->rmidi->private_data;
spin_lock_irqsave(&gus->uart_cmd_lock, flags);
if (gus->gf1.interrupt_handler_midi_out != snd_gf1_interrupt_midi_out) {
snd_gf1_uart_reset(gus, 0);
......@@ -141,7 +141,7 @@ static int snd_gf1_uart_output_close(snd_rawmidi_substream_t * substream)
unsigned long flags;
snd_gus_card_t *gus;
gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
gus = substream->rmidi->private_data;
spin_lock_irqsave(&gus->uart_cmd_lock, flags);
if (gus->gf1.interrupt_handler_midi_in != snd_gf1_interrupt_midi_in)
snd_gf1_uart_reset(gus, 1);
......@@ -156,7 +156,7 @@ static int snd_gf1_uart_input_close(snd_rawmidi_substream_t * substream)
unsigned long flags;
snd_gus_card_t *gus;
gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
gus = substream->rmidi->private_data;
spin_lock_irqsave(&gus->uart_cmd_lock, flags);
if (gus->gf1.interrupt_handler_midi_out != snd_gf1_interrupt_midi_out)
snd_gf1_uart_reset(gus, 1);
......@@ -171,7 +171,7 @@ static void snd_gf1_uart_input_trigger(snd_rawmidi_substream_t * substream, int
snd_gus_card_t *gus;
unsigned long flags;
gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return);
gus = substream->rmidi->private_data;
spin_lock_irqsave(&gus->uart_cmd_lock, flags);
if (up) {
......@@ -191,7 +191,7 @@ static void snd_gf1_uart_output_trigger(snd_rawmidi_substream_t * substream, int
char byte;
int timeout;
gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return);
gus = substream->rmidi->private_data;
spin_lock_irqsave(&gus->uart_cmd_lock, flags);
if (up) {
......
......@@ -131,7 +131,6 @@ MODULE_PARM_SYNTAX(opl3sa3_ymode, SNDRV_ENABLED ",allows:{{0,3}},dialog:list");
#define OPL3SA2_PM_D3 (OPL3SA2_PM_ADOWN|OPL3SA2_PM_PSV|OPL3SA2_PM_PDN|OPL3SA2_PM_PDX)
typedef struct snd_opl3sa2 opl3sa2_t;
#define chip_t opl3sa2_t
struct snd_opl3sa2 {
snd_card_t *card;
......@@ -304,7 +303,7 @@ static int __init snd_opl3sa2_detect(opl3sa2_t *chip)
static irqreturn_t snd_opl3sa2_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
unsigned short status;
opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, dev_id, return IRQ_NONE);
opl3sa2_t *chip = dev_id;
int handled = 0;
if (chip == NULL || chip->card == NULL)
......@@ -496,7 +495,7 @@ OPL3SA2_DOUBLE("Tone Control - Treble", 0, 0x16, 0x16, 4, 0, 7, 0)
static void snd_opl3sa2_master_free(snd_kcontrol_t *kcontrol)
{
opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, _snd_kcontrol_chip(kcontrol), return);
opl3sa2_t *chip = snd_kcontrol_chip(kcontrol);
chip->master_switch = NULL;
chip->master_volume = NULL;
}
......@@ -551,7 +550,7 @@ static int __init snd_opl3sa2_mixer(opl3sa2_t *chip)
#ifdef CONFIG_PM
static int snd_opl3sa2_suspend(snd_card_t *card, unsigned int state)
{
opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, card->pm_private_data, return -EINVAL);
opl3sa2_t *chip = card->pm_private_data;
snd_pcm_suspend_all(chip->cs4231->pcm); /* stop before saving regs */
chip->cs4231_suspend(chip->cs4231);
......@@ -565,7 +564,7 @@ static int snd_opl3sa2_suspend(snd_card_t *card, unsigned int state)
static int snd_opl3sa2_resume(snd_card_t *card, unsigned int state)
{
opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, card->pm_private_data, return -EINVAL);
opl3sa2_t *chip = card->pm_private_data;
int i;
/* power up */
......@@ -656,13 +655,13 @@ static int snd_opl3sa2_free(opl3sa2_t *chip)
release_resource(chip->res_port);
kfree_nocheck(chip->res_port);
}
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_opl3sa2_dev_free(snd_device_t *device)
{
opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, device->device_data, return -ENXIO);
opl3sa2_t *chip = device->device_data;
return snd_opl3sa2_free(chip);
}
......@@ -707,7 +706,7 @@ static int __devinit snd_opl3sa2_probe(int dev,
return -ENOMEM;
strcpy(card->driver, "OPL3SA2");
strcpy(card->shortname, "Yamaha OPL3-SA2");
chip = snd_magic_kcalloc(opl3sa2_t, 0, GFP_KERNEL);
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL) {
err = -ENOMEM;
goto __error;
......
......@@ -661,8 +661,6 @@ static int __devinit snd_opti9xx_configure(opti9xx_t *chip)
#ifdef OPTi93X
#define chip_t opti93x_t
static unsigned char snd_opti93x_default_image[32] =
{
0x00, /* 00/00 - l_mixout_outctrl */
......@@ -1111,7 +1109,7 @@ static void snd_opti93x_overrange(opti93x_t *chip)
irqreturn_t snd_opti93x_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
opti93x_t *codec = snd_magic_cast(opti93x_t, dev_id, return IRQ_NONE);
opti93x_t *codec = dev_id;
unsigned char status;
status = snd_opti9xx_read(codec->chip, OPTi9XX_MC_REG(11));
......@@ -1257,13 +1255,13 @@ static int snd_opti93x_free(opti93x_t *chip)
if (chip->irq >= 0) {
free_irq(chip->irq, chip);
}
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_opti93x_dev_free(snd_device_t *device)
{
opti93x_t *chip = snd_magic_cast(opti93x_t, device->device_data, return -ENXIO);
opti93x_t *chip = device->device_data;
return snd_opti93x_free(chip);
}
......@@ -1288,7 +1286,7 @@ int snd_opti93x_create(snd_card_t *card, opti9xx_t *chip,
opti93x_t *codec;
*rcodec = NULL;
codec = snd_magic_kcalloc(opti93x_t, 0, GFP_KERNEL);
codec = kcalloc(1, sizeof(*codec), GFP_KERNEL);
if (codec == NULL)
return -ENOMEM;
codec->irq = -1;
......@@ -1368,7 +1366,7 @@ static snd_pcm_ops_t snd_opti93x_capture_ops = {
static void snd_opti93x_pcm_free(snd_pcm_t *pcm)
{
opti93x_t *codec = snd_magic_cast(opti93x_t, pcm->private_data, return);
opti93x_t *codec = pcm->private_data;
codec->pcm = NULL;
snd_pcm_lib_preallocate_free_for_all(pcm);
}
......
......@@ -821,8 +821,6 @@ snd_emu8000_update_reverb_mode(emu8000_t *emu)
* mixer interface
*----------------------------------------------------------------*/
#define chip_t emu8000_t
/*
* bass/treble
*/
......@@ -1070,7 +1068,7 @@ static int snd_emu8000_free(emu8000_t *hw)
release_resource(hw->res_port3);
kfree_nocheck(hw->res_port3);
}
snd_magic_kfree(hw);
kfree(hw);
return 0;
}
......@@ -1078,7 +1076,7 @@ static int snd_emu8000_free(emu8000_t *hw)
*/
static int snd_emu8000_dev_free(snd_device_t *device)
{
emu8000_t *hw = snd_magic_cast(emu8000_t, device->device_data, return -ENXIO);
emu8000_t *hw = device->device_data;
return snd_emu8000_free(hw);
}
......@@ -1101,7 +1099,7 @@ snd_emu8000_new(snd_card_t *card, int index, long port, int seq_ports, snd_seq_d
if (seq_ports <= 0)
return 0;
hw = snd_magic_kcalloc(emu8000_t, 0, GFP_KERNEL);
hw = kcalloc(1, sizeof(*hw), GFP_KERNEL);
if (hw == NULL)
return -ENOMEM;
spin_lock_init(&hw->reg_lock);
......
......@@ -94,7 +94,7 @@ release_voice(snd_emux_voice_t *vp)
int dcysusv;
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, vp->hw, return);
hw = vp->hw;
dcysusv = 0x8000 | (unsigned char)vp->reg.parm.modrelease;
EMU8000_DCYSUS_WRITE(hw, vp->ch, dcysusv);
dcysusv = 0x8000 | (unsigned char)vp->reg.parm.volrelease;
......@@ -109,7 +109,7 @@ terminate_voice(snd_emux_voice_t *vp)
{
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, vp->hw, return);
hw = vp->hw;
EMU8000_DCYSUSV_WRITE(hw, vp->ch, 0x807F);
}
......@@ -121,7 +121,7 @@ update_voice(snd_emux_voice_t *vp, int update)
{
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, vp->hw, return);
hw = vp->hw;
if (update & SNDRV_EMUX_UPDATE_VOLUME)
set_volume(hw, vp);
if (update & SNDRV_EMUX_UPDATE_PITCH)
......@@ -168,7 +168,7 @@ get_voice(snd_emux_t *emu, snd_emux_port_t *port)
} best[END];
struct best *bp;
hw = snd_magic_cast(emu8000_t, emu->hw, return NULL);
hw = emu->hw;
for (i = 0; i < END; i++) {
best[i].time = (unsigned int)(-1); /* XXX MAX_?INT really */;
......@@ -235,7 +235,7 @@ start_voice(snd_emux_voice_t *vp)
snd_midi_channel_t *chan;
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, vp->hw, return -EINVAL);
hw = vp->hw;
ch = vp->ch;
chan = vp->chan;
......@@ -313,7 +313,7 @@ trigger_voice(snd_emux_voice_t *vp)
unsigned int temp;
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, vp->hw, return);
hw = vp->hw;
/* set reverb and pitch target */
temp = vp->reg.parm.reverb;
......@@ -333,7 +333,7 @@ reset_voice(snd_emux_t *emu, int ch)
{
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, emu->hw, return);
hw = emu->hw;
EMU8000_DCYSUSV_WRITE(hw, ch, 0x807F);
snd_emu8000_tweak_voice(hw, ch);
}
......@@ -457,7 +457,7 @@ sysex(snd_emux_t *emu, char *buf, int len, int parsed, snd_midi_channel_set_t *c
{
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, emu->hw, return);
hw = emu->hw;
switch (parsed) {
case SNDRV_MIDI_SYSEX_GS_CHORUS_MODE:
......@@ -482,7 +482,7 @@ oss_ioctl(snd_emux_t *emu, int cmd, int p1, int p2)
{
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, emu->hw, return -EINVAL);
hw = emu->hw;
switch (cmd) {
case _EMUX_OSS_REVERB_MODE:
......@@ -526,7 +526,7 @@ static int
load_fx(snd_emux_t *emu, int type, int mode, const void __user *buf, long len)
{
emu8000_t *hw;
hw = snd_magic_cast(emu8000_t, emu->hw, return -EINVAL);
hw = emu->hw;
switch (type) {
case SNDRV_EMU8000_LOAD_CHORUS_FX:
......
......@@ -155,7 +155,7 @@ snd_emu8000_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
int dram_offset, dram_start;
emu8000_t *emu;
emu = snd_magic_cast(emu8000_t, rec->hw, return -EINVAL);
emu = rec->hw;
snd_assert(sp != NULL, return -EINVAL);
if (sp->v.size == 0)
......
......@@ -23,8 +23,6 @@
#include <sound/initval.h>
#include <sound/pcm.h>
#define chip_t emu8000_t
/*
* define the following if you want to use this pcm with non-interleaved mode
*/
......
......@@ -29,8 +29,6 @@
#include <sound/initval.h>
#include <sound/sb.h>
#define chip_t sb_t
#define PFX "es968: "
MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
......@@ -82,7 +80,7 @@ MODULE_DEVICE_TABLE(pnp_card, snd_es968_pnpids);
static irqreturn_t snd_card_es968_interrupt(int irq, void *dev_id,
struct pt_regs *regs)
{
sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
sb_t *chip = dev_id;
if (chip->open & SB_OPEN_PCM) {
return snd_sb8dsp_interrupt(chip);
......
......@@ -37,8 +37,6 @@
#define SNDRV_LEGACY_FIND_FREE_DMA
#include <sound/initval.h>
#define chip_t sb_t
#ifdef SNDRV_SBAWE
#define PFX "sbawe: "
#else
......
......@@ -33,8 +33,6 @@
#include <sound/sb16_csp.h>
#include <sound/initval.h>
#define chip_t snd_sb_csp_t
MODULE_AUTHOR("Uros Bizjak <uros@kss-loka.si>");
MODULE_DESCRIPTION("ALSA driver for SB16 Creative Signal Processor");
MODULE_LICENSE("GPL");
......@@ -127,7 +125,7 @@ int snd_sb_csp_new(sb_t *chip, int device, snd_hwdep_t ** rhwdep)
if ((err = snd_hwdep_new(chip->card, "SB16-CSP", device, &hw)) < 0)
return err;
if ((p = snd_magic_kcalloc(snd_sb_csp_t, 0, GFP_KERNEL)) == NULL) {
if ((p = kcalloc(1, sizeof(*p), GFP_KERNEL)) == NULL) {
snd_device_free(chip->card, hw);
return -ENOMEM;
}
......@@ -165,11 +163,11 @@ int snd_sb_csp_new(sb_t *chip, int device, snd_hwdep_t ** rhwdep)
*/
static void snd_sb_csp_free(snd_hwdep_t *hwdep)
{
snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hwdep->private_data, return);
snd_sb_csp_t *p = hwdep->private_data;
if (p) {
if (p->running & SNDRV_SB_CSP_ST_RUNNING)
snd_sb_csp_stop(p);
snd_magic_kfree(p);
kfree(p);
}
}
......@@ -180,7 +178,7 @@ static void snd_sb_csp_free(snd_hwdep_t *hwdep)
*/
static int snd_sb_csp_open(snd_hwdep_t * hw, struct file *file)
{
snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hw->private_data, return -ENXIO);
snd_sb_csp_t *p = hw->private_data;
return (snd_sb_csp_use(p));
}
......@@ -189,7 +187,7 @@ static int snd_sb_csp_open(snd_hwdep_t * hw, struct file *file)
*/
static int snd_sb_csp_ioctl(snd_hwdep_t * hw, struct file *file, unsigned int cmd, unsigned long arg)
{
snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hw->private_data, return -ENXIO);
snd_sb_csp_t *p = hw->private_data;
snd_sb_csp_info_t info;
snd_sb_csp_start_t start_info;
int err;
......@@ -258,7 +256,7 @@ static int snd_sb_csp_ioctl(snd_hwdep_t * hw, struct file *file, unsigned int cm
*/
static int snd_sb_csp_release(snd_hwdep_t * hw, struct file *file)
{
snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hw->private_data, return -ENXIO);
snd_sb_csp_t *p = hw->private_data;
return (snd_sb_csp_unuse(p));
}
......@@ -1110,7 +1108,7 @@ static int init_proc_entry(snd_sb_csp_t * p, int device)
static void info_read(snd_info_entry_t *entry, snd_info_buffer_t * buffer)
{
snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, entry->private_data, return);
snd_sb_csp_t *p = entry->private_data;
snd_iprintf(buffer, "Creative Signal Processor [v%d.%d]\n", (p->version >> 4), (p->version & 0x0f));
snd_iprintf(buffer, "State: %cx%c%c%c\n", ((p->running & SNDRV_SB_CSP_ST_QSOUND) ? 'Q' : '-'),
......
......@@ -49,13 +49,11 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Routines for control of 16-bit SoundBlaster cards and clones");
MODULE_LICENSE("GPL");
#define chip_t sb_t
#ifdef CONFIG_SND_SB16_CSP
static void snd_sb16_csp_playback_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
{
if (chip->hardware == SB_HW_16CSP) {
snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
......@@ -103,7 +101,7 @@ static void snd_sb16_csp_playback_prepare(sb_t *chip, snd_pcm_runtime_t *runtime
static void snd_sb16_csp_capture_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
{
if (chip->hardware == SB_HW_16CSP) {
snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
......@@ -141,7 +139,7 @@ static void snd_sb16_csp_capture_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
static void snd_sb16_csp_update(sb_t *chip)
{
if (chip->hardware == SB_HW_16CSP) {
snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
snd_sb_csp_t *csp = chip->csp;
if (csp->qpos_changed) {
spin_lock(&chip->reg_lock);
......@@ -155,7 +153,7 @@ static void snd_sb16_csp_playback_open(sb_t *chip, snd_pcm_runtime_t *runtime)
{
/* CSP decoders (QSound excluded) support only 16bit transfers */
if (chip->hardware == SB_HW_16CSP) {
snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
......@@ -173,7 +171,7 @@ static void snd_sb16_csp_playback_open(sb_t *chip, snd_pcm_runtime_t *runtime)
static void snd_sb16_csp_playback_close(sb_t *chip)
{
if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_WRITE)) {
snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
snd_sb_csp_t *csp = chip->csp;
if (csp->ops.csp_stop(csp) == 0) {
csp->ops.csp_unuse(csp);
......@@ -186,7 +184,7 @@ static void snd_sb16_csp_capture_open(sb_t *chip, snd_pcm_runtime_t *runtime)
{
/* CSP coders support only 16bit transfers */
if (chip->hardware == SB_HW_16CSP) {
snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
snd_sb_csp_t *csp = chip->csp;
if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */
......@@ -204,7 +202,7 @@ static void snd_sb16_csp_capture_open(sb_t *chip, snd_pcm_runtime_t *runtime)
static void snd_sb16_csp_capture_close(sb_t *chip)
{
if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_READ)) {
snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
snd_sb_csp_t *csp = chip->csp;
if (csp->ops.csp_stop(csp) == 0) {
csp->ops.csp_unuse(csp);
......@@ -395,7 +393,7 @@ static int snd_sb16_capture_trigger(snd_pcm_substream_t * substream,
irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
sb_t *chip = dev_id;
unsigned char status;
int ok;
......
......@@ -30,8 +30,6 @@
#define SNDRV_LEGACY_AUTO_PROBE
#include <sound/initval.h>
#define chip_t sb_t
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Sound Blaster 1.0/2.0/Pro");
MODULE_LICENSE("GPL");
......@@ -73,7 +71,7 @@ static snd_card_t *snd_sb8_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
static irqreturn_t snd_sb8_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
sb_t *chip = dev_id;
if (chip->open & SB_OPEN_PCM) {
return snd_sb8dsp_interrupt(chip);
......
......@@ -42,8 +42,6 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Uros Bizjak <uros@kss-loka.si>")
MODULE_DESCRIPTION("Routines for control of 8-bit SoundBlaster cards and clones");
MODULE_LICENSE("GPL");
#define chip_t sb_t
#define SB8_CLOCK 1000000
#define SB8_DEN(v) ((SB8_CLOCK + (v) / 2) / (v))
#define SB8_RATE(v) (SB8_CLOCK / SB8_DEN(v))
......
......@@ -73,7 +73,7 @@ static int snd_sb8dsp_midi_input_open(snd_rawmidi_substream_t * substream)
sb_t *chip;
unsigned int valid_open_flags;
chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
chip = substream->rmidi->private_data;
valid_open_flags = chip->hardware >= SB_HW_20
? SB_OPEN_MIDI_OUTPUT | SB_OPEN_MIDI_OUTPUT_TRIGGER : 0;
spin_lock_irqsave(&chip->open_lock, flags);
......@@ -100,7 +100,7 @@ static int snd_sb8dsp_midi_output_open(snd_rawmidi_substream_t * substream)
sb_t *chip;
unsigned int valid_open_flags;
chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
chip = substream->rmidi->private_data;
valid_open_flags = chip->hardware >= SB_HW_20
? SB_OPEN_MIDI_INPUT | SB_OPEN_MIDI_INPUT_TRIGGER : 0;
spin_lock_irqsave(&chip->open_lock, flags);
......@@ -126,7 +126,7 @@ static int snd_sb8dsp_midi_input_close(snd_rawmidi_substream_t * substream)
unsigned long flags;
sb_t *chip;
chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
chip = substream->rmidi->private_data;
spin_lock_irqsave(&chip->open_lock, flags);
chip->open &= ~(SB_OPEN_MIDI_INPUT | SB_OPEN_MIDI_INPUT_TRIGGER);
chip->midi_substream_input = NULL;
......@@ -144,7 +144,7 @@ static int snd_sb8dsp_midi_output_close(snd_rawmidi_substream_t * substream)
unsigned long flags;
sb_t *chip;
chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
chip = substream->rmidi->private_data;
spin_lock_irqsave(&chip->open_lock, flags);
chip->open &= ~(SB_OPEN_MIDI_OUTPUT | SB_OPEN_MIDI_OUTPUT_TRIGGER);
chip->midi_substream_output = NULL;
......@@ -162,7 +162,7 @@ static void snd_sb8dsp_midi_input_trigger(snd_rawmidi_substream_t * substream, i
unsigned long flags;
sb_t *chip;
chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
chip = substream->rmidi->private_data;
spin_lock_irqsave(&chip->open_lock, flags);
if (up) {
if (!(chip->open & SB_OPEN_MIDI_INPUT_TRIGGER)) {
......@@ -188,7 +188,7 @@ static void snd_sb8dsp_midi_output_write(snd_rawmidi_substream_t * substream)
int max = 32;
/* how big is Tx FIFO? */
chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
chip = substream->rmidi->private_data;
while (max-- > 0) {
spin_lock_irqsave(&chip->open_lock, flags);
if (snd_rawmidi_transmit_peek(substream, &byte, 1) != 1) {
......@@ -219,7 +219,7 @@ static void snd_sb8dsp_midi_output_write(snd_rawmidi_substream_t * substream)
static void snd_sb8dsp_midi_output_timer(unsigned long data)
{
snd_rawmidi_substream_t * substream = (snd_rawmidi_substream_t *) data;
sb_t * chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
sb_t * chip = substream->rmidi->private_data;
unsigned long flags;
spin_lock_irqsave(&chip->open_lock, flags);
......@@ -234,7 +234,7 @@ static void snd_sb8dsp_midi_output_trigger(snd_rawmidi_substream_t * substream,
unsigned long flags;
sb_t *chip;
chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
chip = substream->rmidi->private_data;
spin_lock_irqsave(&chip->open_lock, flags);
if (up) {
if (!(chip->open & SB_OPEN_MIDI_OUTPUT_TRIGGER)) {
......
......@@ -33,8 +33,6 @@
#include <asm/io.h>
#include <asm/dma.h>
#define chip_t sb_t
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("ALSA lowlevel driver for Sound Blaster cards");
MODULE_LICENSE("GPL");
......@@ -197,13 +195,13 @@ static int snd_sbdsp_free(sb_t *chip)
free_dma(chip->dma16);
}
#endif
snd_magic_kfree(chip);
kfree(chip);
return 0;
}
static int snd_sbdsp_dev_free(snd_device_t *device)
{
sb_t *chip = snd_magic_cast(sb_t, device->device_data, return -ENXIO);
sb_t *chip = device->device_data;
return snd_sbdsp_free(chip);
}
......@@ -224,7 +222,7 @@ int snd_sbdsp_create(snd_card_t *card,
snd_assert(r_chip != NULL, return -EINVAL);
*r_chip = NULL;
chip = snd_magic_kcalloc(sb_t, 0, GFP_KERNEL);
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
spin_lock_init(&chip->reg_lock);
......
......@@ -27,8 +27,6 @@
#include <sound/sb.h>
#include <sound/control.h>
#define chip_t sb_t
#undef IO_DEBUG
void snd_sbmixer_write(sb_t *chip, unsigned char reg, unsigned char data)
......
......@@ -36,8 +36,6 @@
#include <sound/sscape_ioctl.h>
#define chip_t cs4231_t
MODULE_AUTHOR("Chris Rankin");
MODULE_DESCRIPTION("ENSONIQ SoundScape PnP driver");
......
......@@ -30,8 +30,6 @@
#include <sound/opl3.h>
#include <sound/snd_wavefront.h>
#define chip_t cs4231_t
MODULE_AUTHOR("Paul Barton-Davis <pbd@op.net>");
MODULE_DESCRIPTION("Turtle Beach Wavefront");
MODULE_LICENSE("GPL");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment